使用ProxyPass将端口80上的流量重定向到通过Tomcat托管的Web应用程序时,我遇到了使用cookie的问题。
启用Cookie的动机是删除附加到网址的“jsessionid =”参数。
我在META-INF /的context.xml中为我的网络应用程序启用了cookie 当我通过http://url:8080/webapp访问Web应用程序时,它按预期工作,jsessionid参数在URL中不可见,而是存储在cookie中。
当通过apache2虚拟主机访问我的网站时,cookie似乎不起作用,因为现在“jsessionid”被附加到URL。我该如何解决这个问题?
这是我的VHost配置:
<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>
编辑:实际上正在设置cookie。我猜测问题是cookie包含“Path:/ webapp”。
答案 0 :(得分:21)
我明白了。
将此添加到VHost配置:
ProxyPassReverseCookiePath /webapp /
答案 1 :(得分:0)
感谢您的回答,我完整的工作配置如下:
<VirtualHost *:80>
ServerName extener_url.xxx.co.zm
ProxyRequests Off
ProxyPass / http://localhost:8080/app/
ProxyPassReverse / http://localhost:8080/app/
ProxyPassReverseCookiePath /app /
ServerAdmin webmaster@localhost
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>