2011-05-19 68 views
3

我们正在调查是否有可能使用HAProxy的加载多个Tomcat服务器的平衡。我们希望对所有请求使用HTTPs,并通过JSESSIONID cookie使用会话。 HAProxy本身不支持SSL,但我们可以在其前面使用stunnel。HAProxy的负载均衡HTTPS和会话故障转移

在此设置记:

1)我们是否有使用粘性会话(后续请求总是去同一个Tomcat实例)?

2)如果我们不得不使用粘性会话那么我们如何能够解决更新我们的Tomcat实例有一个新的Web应用程序的部署,而不必强制用户注销(失去他们的会话)?

回答

4

您不必使用粘性会话,但是如果您不使用粘性会话,则需要使用共享会话解决方案,如http://tomcat.apache.org/tomcat-7.0-doc/config/manager.html(JDBC会话存储可能是要走的路)所述, 。我敢打赌,你可以找到代码来在Redis或Memcache中进行会话存储,但我没有广泛地看过。

一旦你这样做,它也将解决更新情况的问题,虽然我的经验,没有那么Web应用程序的更新自动失效会议(似乎只有全面重启做到这一点)。不过,我必须仔细看看。

+0

这是正确的。您的会话应在中心位置提供,例如网络可访问密钥/值存储。 正如** Femi **所述,您不需要使用粘性会话。 HAProxy有一个选项:** balance source **,它将跟踪用户的源IP并处理对同一个tomcat实例的转发请求。 – a1wca 2011-05-27 05:31:52