我有一个托管在两个Tomcat服务器上的Web应用程序,相同的WAR和server.xml。 我没有权限更改任何Apache设置 - 因此,我知道负载平衡的工作方式与我们通过关闭一个服务器而不是另一个服务器等进行测试一样。根据Tomcat日志,我看到两者都被使用了。 / p>
使用默认的Tomcat HTTP端口8080(在我的情况下更改为8083,非发布)会话保持正常。
但是,我更改了使用SSL,端口443,现在会话在创建后的30秒--5分钟内无效。我假设这与会话复制有关,因为除了指向密钥库之外我没有对server.xml或web.xml进行任何更改:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" secure="true" scheme="https" sslProtocol="TLS"
maxThreads="150"
clientAuth="false" keystoreFile="ssl/keystore.jks" keystorePass="123" />
我不确定还有什么要复制到这里,因为对server.xml的唯一更改实际上是这几行 - 我认为增加的安全性是出于某种原因使会话无效。
我目前有一个测试服务器在HTTP和HTTPS上为应用程序提供服务 - 甚至同时访问应用程序,HTTP运行正常并保留会话,HTTPS拒绝保持会话超过5分钟。< / p>
对于两个Tomcat服务器而不是负载均衡器安装SSL证书的价值是什么 - 根据https://serverfault.com/questions/248139/apache-ssl-losing-session-over-load-balancer可能是问题?我只编写了应用程序并更改了一些xml配置 - 不确定这是否是我可以修复的问题。