關鍵在於tomcat 中的應用context 路徑是 /portal , 而外部訪問context 路徑是 / ,JSESSIONID 的值從瀏覽器經過反向代理到達tomcat時,由於cookie時內外路徑不一致,使tomcat每次重寫設置JSESSIONID 的值,導致session丟失現象,在apache VirtualHost中需要通過ProxyPassReverseCookiePath 指令做一個路徑映射,詳細如下:
ProxyPreserveHost On ProxyPass / http://localhost:8080/portal/
ProxyPassReverse / http://localhost:8080/portal/
ProxyPassReverseCookieDomain locahost www.domain.cn
ProxyPassReverseCookiePath /portal /
Invalid command 'ProxyRequests', perhaps misspelled or defined by a module not included in the server configuration問題
修改httpd.conf文件,打開註釋:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so