我对负载平衡相当陌生,而且在使亚马逊的Elastic Load Balancer与子域进行良好配合方面遇到了一些问题。AWS Elastic Load Balancing存在问题粘性会话 - 从不同服务器提供子域名?
我的负载均衡器后面有两台EC2服务器。当我去mydomain.com和www.mydomain.com,这两个网址由不同的EC2服务器提供服务。我需要www.mydomain.com和mydomain.com将从同一台服务器提供,以便会话正常工作。
我有负载平衡器 “与粘性” 设置为LBCookieStickinessPolicy像这样:
和我的两个EC2实例都是 “在服务” 的背后我的负载平衡器:
我不知道它是否对故障排除有用,但我的apache配置如下所示:
当我认为在Firebug的会议上,我看到了下面......
对于mydomain.com:
对于www.mydomain.com(注意附加“ WWW。“)
我不知道为什么,但实际上,在查看www.mydomain.com的cookies时,实际上是设置了两个AWSELB cookie。
我使用Zend框架,和我设置我的cookie_domain像这样:
Zend_Session::start(array('cookie_domain' => '.mydomain.com'));
这在工地移动到两个负载平衡EC2服务器之前,在过去工作的罚款。我们的网站使用一些子域名,例如api.mydomain.com和my.mydomain.com,这使cookie_domain变得重要。而且,当然,这可能是好的。很有可能一旦我们让负载平衡器会话“粘性”在子域之间正常工作,会话变量将按预期工作(希望!)。
任何想法为什么我们的网站是由不同的服务器提供服务时,“www”。被添加到域名?
谢谢!
我想评论一下,我使用“Application-Controlled Session Stickiness”(http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/US_EnableStickySessionsAppCookies.html)解决了我的问题。我仍然喜欢听到我原来的问题的任何答案。 – clone45 2012-08-07 23:16:33