我对负载平衡很陌生,我在让亚马逊的弹性负载平衡器与子域很好地配合时遇到了一些问题。
我的负载均衡器后面有两台 EC2 服务器。当我访问mydomain.com和www.mydomain.com时,这两个 url 由不同的 EC2 服务器提供。我需要从同一台服务器同时提供www.mydomain.com和mydomain.com,以便会话正常工作。
我将负载均衡器“粘性”设置为 LBCookieStickinessPolicy,如下所示:
我的两个 EC2 实例都在我的负载均衡器后面“服务中”:
我不知道它是否对故障排除有用,但我的 apache 配置如下所示:
当我在 Firebug 中查看会话时,我看到以下内容......
对于 mydomain.com:
对于 www.mydomain.com(请注意附加的“www.”)
我不知道为什么,但在查看 www.mydomain.com 的 cookie 时实际上设置了两个 AWSELB cookie。
我正在使用 Zend 框架,我正在像这样设置我的 cookie_domain:
Zend_Session::start(array('cookie_domain' => '.mydomain.com'));
在将站点移动到两个负载平衡的 EC2 服务器之前,这在过去运行良好。我们的站点使用了一些子域,例如 api.mydomain.com 和 my.mydomain.com,这使得 cookie_domain 很重要。而且,当然,这可能没问题。很有可能一旦我们让负载均衡器会话“粘”在子域之间正常工作,会话变量将按预期工作(希望如此!)。
任何想法为什么我们的网站在“www.”时从不同的服务器提供服务。是添加到域名吗?
谢谢!