【问题标题】:Sticky session for load balancing with multiple domains用于与多个域进行负载平衡的粘性会话
【发布时间】:2011-02-07 09:57:06
【问题描述】:

所以这是场景,我有几个负载平衡服务器,有一堆指向负载平衡器 IP 的域。该网站根据访问的域显示不同的皮肤(这很好用)。为了确保与负载平衡的会话,我使用了粘性会话,问题来自我所知道的(这并不多)我需要为 cookie 定义域,但我们有多个可能的域.. 我在每个域上定义 cookie网络服务器:

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等)共享会话?
  • 好吧,我尝试将两台服务器上 php.ini 的 session.save_path 设置为 NAS 上的某个共享位置,但会话不一致,重新加载页面有时会显示用户已登录并且有时没有记录.. 除了 php.ini 中的设置,还应该做什么?

标签: apache mod-rewrite load-balancing


【解决方案1】:

所以我设法让它工作......第二种方法很好,只有环境变量不好,我还删除了尾部斜杠:

RewriteCond %{HTTP:X-Forwarded-Host} ^(www\.)?domain1\.com [NC]
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain1.com] [L]
RewriteCond %{HTTP:X-Forwarded-Host} ^(www\.)?domain2\.com [NC]
RewriteRule .* - [CO=BALANCEID:balancer.lb1:.domain2.com] [L]

请注意,如果您想通过 PHP 访问该域:

$_SERVER['HTTP_X_FORWARDED_HOST']

也许这会为其他人节省一些时间;)

感谢您的回复!

【讨论】:

  • 谢谢!它帮助我发现您需要在 .htaccess 或 Apache conf 中使用 %{HTTP:X-Forwarded-Host} 而不是 %{HTTP_X_FORWARDED_HOST}
猜你喜欢
  • 2019-01-21
  • 2011-09-23
  • 1970-01-01
  • 2012-03-12
  • 2021-09-06
  • 2018-12-20
  • 2017-10-22
  • 2016-02-17
  • 2018-04-05
相关资源
最近更新 更多