下面是我的httpd.conf配置。2我有一个tomcat服务器作为后端服务器,我使用apachewebserver作为我的tomcat服务器的代理。
下面的配置对于所有不需要会话的网页都能正常工作。
当进一步调查时,我发现JSESSIONID在每个Web请求上都在变化,这意味着当请求和响应通过Apache http服务器时,该ID不会持久化。
请注意,当我尝试将tomcat服务器直接暴露给web时,JSESSIONID是持久的,并且按预期工作。然而,出于安全要求,我们需要将tomcat服务器仅用作后端内部服务器。
所以我不知道为什么apache http服务器不喜欢正确处理jsesionid。请求您的帮助,并指导我在我的配置中缺少什么。
注意:我们不需要任何负载平衡器设置,因此目前不考虑mod_proxy_balancer模块。
<VirtualHost *:443>
ServerName www.external.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
AddOutputFilterByType SUBSTITUTE text/html
ProxyPreserveHost off
ProxyPass / http://localhost:8080/internal/
ProxyPassReverse / http://localhost:8080/internal/
Substitute "s|http://localhost:8080/internal|https://www.external.com|i"
SSLProtocol all
SSLEngine on
SSLCertificateFile C:/keys/site/external_cert.cer
SSLCertificateKeyFile C:/keys/site/www_internal_private.p12.pri.pem
SSLCertificateChainFile C:/keys/site/Intermediate_CA.cer
</VirtualHost>
Apache Web服务器为Apache 2.4,Tomcat引擎为Tomcat 8.5
2条答案
按热度按时间js5cn81o1#
在serverfault answer之后添加
Set-Cookie
标题:最后,我只需要在VirtualHost配置中添加以下代码行,将所有cookie路径从/WEBAPP_NAME更改为/(root):
cnwbcb6i2#
在web.xml中设置cookie的硬路径就足够了: