问题
I'm having some issues with getting cookies to work when using a ProxyPass to redirect traffic on port 80 to a web-application hosted via Tomcat.
My motivation for enabling cookies is to get rid of the "jsessionid=" parameter that is appended to the URLs.
I've enabled cookies in my context.xml in META-INF/ for my web application.
When I access the webapplication via http://url:8080/webapp it works as expected, the jsessionid parameter is not visible in the URL, instead it's stored in a cookie.
When accessing my website via an apache2 virtualhost the cookies doesn't seem to work because now "jsessionid" is being appended to the URLs. How can I solve this issue?
Here's my VHost configuration:
<VirtualHost *:80> ServerName somedomain.no ServerAlias www.somedomain.no <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPreserveHost Off ProxyPass / http://localhost:8080/webapp/ ProxyPassReverse / http://localhost:8080/webapp/ ErrorLog /var/log/apache2/somedomain.no.error.log CustomLog /var/log/apache2/somedomain.no.access.log combined </VirtualHost>
EDIT: The cookie is actually being set. I am guessing that the problem is that the cookie contains the "Path: /webapp".
回答1:
I figured it out.
Add this to the VHost configuration:
ProxyPassReverseCookiePath /webapp /
来源:https://stackoverflow.com/questions/2659444/tomcat-cookies-not-working-via-my-proxypass-virtualhost