0
所以这里是场景,我有几个负载平衡服务器,有一堆域指向负载平衡器IP。该网站根据所访问的域名显示不同的皮肤(此工作正常)。为了保证会话的负载平衡,我使用了粘性会话,问题来自我所知道的(这不是很多),我需要为cookie定义域,但我们有多个可能的域..我定义了每个cookie Web服务器:粘滞会话负载平衡多个域
RewriteEngine On
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain1.com]
,因为我们有多个领域,我想我可以添加一个重写规则为每个域和Apache会处理的是,这样的事情:
RewriteEngine On
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain1.com]
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain2.com]
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain3.com]
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain4.com]
但你可能有现在搞清楚了,粘性会话只适用于domain1.com,这是名单上的第一个。
任何想法如何解决这个问题?
编辑:
我现在正在尝试这种方法:
RewriteEngine On
RewriteCond %{HTTP_X_FORWARDED_HOST} ^(www\.)?domain1\.com/ [NC]
RewriteRule .* - [CO=BALANCEID:balancer.lb2:.domain1.com] [L]
RewriteCond %{HTTP_X_FORWARDED_HOST} ^(www\.)?domain2\.com/ [NC]
RewriteRule .* - [CO=BALANCEID:balancer.lb2:.domain2.com] [L]
RewriteCond %{HTTP_X_FORWARDED_HOST} ^(www\.)?domain3\.com/ [NC]
RewriteRule .* - [CO=BALANCEID:balancer.lb2:.domain3.com] [L]
但它不工作的,是那些规则错别字或 这种逻辑根本不会工作?
PS:我也尝试使用HTTP_HOST而不是HTTP_X_FORWARDED_HOST,但它有相同的结果。
你真的需要粘性会话,为什么不在服务器端共享会话(数据库/ NFS等)? – regilero 2011-02-07 12:58:57
以及我试图设置两个服务器上的php.ini的session.save_path到NAS上的一些共享位置,但会话不一致,重新加载页面有时会显示用户已登录,有时没有登录..什么除了php.ini中的设置,还应该完成其他操作吗? – Julien 2011-02-07 22:14:17