我已经在Debian 6 Squeeze上安装了Pound(用于SSL卸载)和HAproxy。 我正在尝试了解HAProxy文档来设置粘性会话,因为此负载平衡器将会在Web应用程序前面进行。
我也看了一下服务器故障的其他人的configurationHAProxy的粘滞会话; 我在互联网上看到的显而易见的方式是在backend声明下这样的东西。
balance roundrobin stick store-request src stick-table type ip size 200k expire 2m server web1 10.0.0.2:8080 check server web2 10.0.0.3:8080 check
我见过的另一个不太常见的方法是使用选项appsession ,如此处所述 。
我应该使用哪一个或两者? 为什么?
谢谢。
这取决于什么是最适合您的应用程序。 如果您的networking应用程序使用cookie进行会话跟踪,那么appsession是一个很好的方法。 但是,如果您的站点使用SSL / TLS,并且encryption位于后端,则haproxy无法读取cookie,您必须使用IP。 因为你用英镑卸载SSL(假设它在haproxy前面),那么这对你来说应该不成问题。
或者,如果会话状态完全存储在Cookie或后端服务器(即数据库)之间共享的存储中,则根本不需要粘性。
可能你之所以没有在示例中使用过多的理由,是因为它比IP粘性稍微多一些,并不总是值得的,尤其是因为几乎所有这些日子都把会话状态存储在共享存储中。