下面是我的httpd.conf配置。我使用Tomcat服务器作为后端服务器,并且使用ApacheWebServer作为我的Tomcat服务器的代理。
对于不需要会话的所有网页,下面的配置工作正常。
当进一步调查时,我观察到JSessionID在每个Web请求上都在变化,这意味着当请求和响应通过ApacheHTTP服务器时,该ID不会持久化。
请注意,当我试图将Tomcat服务器直接公开到Web JSessionID时,它是持久的,并且按预期工作。但是,作为安全性要求,我们只需要使用Tomcat服务器作为后端内部服务器。
所以我不知道为什么ApacheHTTP服务器不喜欢正确处理JSessionID。同样,请求您的帮助,并指导我在配置中缺少什么。
注意:我们不需要任何负载均衡器设置,因此目前我不考虑mod eu 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