Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat负载平衡器仅在使用SSL时创建新会话_Java_Tomcat_Ssl_Load Balancing_Redhat - Fatal编程技术网

Java Tomcat负载平衡器仅在使用SSL时创建新会话

Java Tomcat负载平衡器仅在使用SSL时创建新会话,java,tomcat,ssl,load-balancing,redhat,Java,Tomcat,Ssl,Load Balancing,Redhat,我有一个web应用程序,托管在两台Tomcat服务器上,分别是相同的WARs和server.xml。 我没有权限更改任何Apache设置——因此,我知道负载平衡可以通过关闭一台服务器而不是另一台服务器进行测试,等等。根据Tomcat日志,我看到两台服务器都在使用 当使用默认的Tomcat HTTP端口8080时(在我的例子中,更改为8083,非问题),会话可以很好地保留 但是,我更改了使用SSL、端口443,现在会话在创建后的30秒-5分钟内的任何地方都会失效。我假设这与会话复制有关,因为除了指

我有一个web应用程序,托管在两台Tomcat服务器上,分别是相同的WARs和server.xml。 我没有权限更改任何Apache设置——因此,我知道负载平衡可以通过关闭一台服务器而不是另一台服务器进行测试,等等。根据Tomcat日志,我看到两台服务器都在使用

当使用默认的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分钟


值得一提的是,SSL证书安装在两台Tomcat服务器上,而不是安装在负载平衡器上——这可能是问题所在?我只编写了应用程序并更改了一些xml配置—不确定这是否一定是我可以解决的问题。

您尝试过粘性会话吗?您是否在tomcat引擎配置中使用jvmRoute?我没有-但感谢您的指导:)。我将根据问题的进展情况适当更新我的问题!添加jvmroute将向jsessionid添加后缀。这样可以改进呼叫监控。您提到的链接包含一个使用ApacheHTTPD的不错的解决方案。