URL 中 jsessionid 的 Amazon Load Balancer 粘性会话配置
我目前尝试为 Tomcat 工作人员设置 Amazon 负载均衡器,但遇到一个问题。
我正在使用粘性会话,并且 cookie JSESSIONID
可用于大多数请求。但有些请求在 URL 中包含会话信息,如下所示:
http://myserver.com/contextPath/someAction ;jsessionid=BA6853C23F795BD5EEDAEA996E601BB8
它不起作用(并且请求被转发给错误的工作人员)。
AWS 负载均衡器是否支持 URL 中的 jsessionid
?如果不是,那么您可能知道一些解决方法?
使用 Apache + mod_proxy_balancer,我可以像这样定义它:
ProxyPassMatch /.* balancer://mycluster stickysession=JSESSIONID|jsessionid
I currently trying to setup Amazon Load Balancer for Tomcat workers, but I faced one problem.
I'm using sticky sessions and cookie JSESSIONID
is available for most of the requests. But some requests have session information in URL, like this:
http://myserver.com/contextPath/someAction;jsessionid=BA6853C23F795BD5EEDAEA996E601BB8
And it does not work (and request is forwarded to the wrong worker).
Does AWS Load Balancer support jsessionid
in the URL? If no, than maybe you know some workarounds?
With Apache + mod_proxy_balancer I can, for example, define it like this:
ProxyPassMatch /.* balancer://mycluster stickysession=JSESSIONID|jsessionid
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
AWS 的弹性负载均衡器不支持基于 URL 的会话粘性。
请务必检查您是否已设置 ELB 的粘性策略。
此外,ELB 的粘性实际上并不考虑任何 cookie 的值,除了它自己的称为“AWSELB”的值。当您配置基于 cookie 的粘性策略时,您实际上是在配置粘性的生命周期以遵循指定 cookie 的生命周期 - 但实际的服务器分配由AWSELB cookie。
AWS's Elastic Load Balancer does not support URL-based session stickiness.
Be sure to check that you've set the ELB's stickiness policy.
Also, ELB's stickiness doesn't actually look at the value of any cookie except for its own called "AWSELB". When you configure a cookie-based stickiness policy you're really configuring the lifetime of the stickiness to follow the lifetime of the specified cookie - but the actual server assignment is controlled by the AWSELB cookie.