问题标签 [sticky-session]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - 使用负载均衡器时摆脱redis作为背板
给定
我们在 iis 上的 2 台服务器上有一个站点。在此之前,我们有一个负载均衡器。我们使用 redis for windows 作为背板,使用现有的 signalR hubg 提供搜索结果。
问题
现在我们在 redis for windows 上遇到了一些不好的问题。
我发现一些帖子指出使用粘性会话会使 redis 的使用过时。
这是正确的吗 ?当激活粘性会话时,signalR 也会自动改变其行为,还是我必须配置它?
非常欢迎任何提示
php - 使用 nginx 对动态 php 站点进行负载均衡
我有三台服务器。一个用于负载平衡,另外两个用于服务 Web 应用程序。如果我将我的网页用作静态站点,我的负载平衡工作正常。但是当我登录到我的网页时,它没有正确响应,因为每次加载页面时它都会更改其服务器。在注销前不更改当前服务器的情况下,我怎么能做到这一点。我的负载平衡服务器配置是
load-balancing - 如何仅在关闭所有使用它的会话后才使 haproxy 的棒表条目过期
我目前正在使用 Haproxy 1.5,我有一个带有 2 台服务器的后端。我的应用服务器从两个客户端接收连接,我希望它们都归属于同一服务器。所有连接都有一个 url 参数 X,并且应该归属于同一服务器的会话具有相同的 url 参数 X 值。我使用一个棒表来保存特定 url 参数值使用的服务器,以便将来的连接可以归因于同一台服务器。
我希望能够随着负载的增加添加应用服务器。为了指示 haproxy 将以前的连接移动到新的应用程序服务器,我需要在服务器中没有会话(任一客户端)处于活动状态时使棒表条目过期。
谁能帮我这个?
amazon-elb - AWS ELB 粘性会话能否用于后端请求?
我目前将我的 Web 应用程序托管在 AWS 上,我使用两个 ELB 实例,一个用于负载平衡前端请求到应用程序服务器,另一个用于负载平衡从应用程序服务器到 API 服务器的后端请求,就像这样(对不起,糟糕的ascii图):
换句话说,APP 服务器发出的 API 请求在两个后端 API 服务器之间进行负载均衡。
但是,因为我在 API 服务器上缓存响应,并使用在 API 服务器之间不共享的缓存失效机制,所以我希望用户的会话被卡在一个后端 API 服务器上。
我已经使用普通的 ELB 负载均衡器生成的 cookie 粘性将用户的会话粘在了一个 APP 服务器上,但是有没有办法让后端 ELB 粘在一个会话上?当然,这些请求不是来自浏览器,所以没有什么可以管理 cookie,而且似乎 ELB 只能使用 cookie 管理粘性。我可以模拟我的后端请求所需的 cookie 吗?
node.js - 粘性会话与 socket.io-粘性会话节点 js 库!哪个更好?
我遇到了这两个用于节点 js 的粘性会话库
https://github.com/indutny/sticky-session
https://github.com/wzrdtales/socket-io-sticky-session
两者有什么区别,我的需要只是实现带有节点集群的套接字,以及将来如果我想添加 Ngnx Server。
在 Socket.io 文档中,他们提到了前一个,但是这个链接
Socket.io 'Handshake' 因集群和粘性会话而失败
说第二个更好!
django - 关闭了 AWS 负载均衡器粘性的 Django 用户会话
我将 AWS Elastic Beanstalk 与 Elastic Load Balancer (ELB) 后面的 EC2 服务器一起使用。
我在 ELB 上启用了“粘性会话”,因为这是让 django 用户会话正常工作的唯一方法。但是,在流量高峰期间,这会导致问题,因为 ELB 不再平均分配每个传入请求。这通常会像迷你 DDOS 一样使 1 台服务器过载。
我想做的是使用服务器端用户会话,其中用户身份验证信息存储在我的 Redis 缓存中。我试过设置SESSION_ENGINE
很多东西,比如:
然后,当我关闭粘性会话时,我无法登录,因为请求最终会到达不同的服务器,其中一些请求经过身份验证,而另一些则没有。那些不是,将我重定向回登录页面。
以下是我拥有的其他一些相关设置:
我究竟做错了什么?非常感谢。
tomcat - Tomcat 持久性管理器
我有 2 个 Tomcat 在使用 sticky_sessions=false 进行负载平衡。所以我需要跨Tomcats的“会话持久性”。Tomcat文档说有3种方法:
- Tomcat 集群
- 持久性管理器 + 共享目录
- 持久化管理器 + SQL 存储
集群不适合我,因为在它编写的文档中,配置它的 sticky_sessions 应该是真的。
我尝试了 Persistance Manager,但它看起来也不起作用,因为它仅在超时后才保持会话,因此使用 sticky_session=false 它不起作用。
持久性管理器可以立即持久化会话吗?
我阅读了有关 memcached-session-manager 的信息,但它看起来像 3d 派对解决方案,所以我不敢使用它。它是唯一的解决方案吗?
apache - Apache 负载均衡 tomcat websocket
我目前正在开发一个 websocket 应用程序,它部署在 Tomcat 服务器上。由于用户数量庞大,我想将工作负载分配给多个 Tomcat 实例。我决定使用 Apache 进行负载平衡。
现在我对 websockets 请求的 Apache 负载平衡和粘性会话的实现有问题。这是我的 Apache 配置:
第一个 https 请求平衡到 8443 端口,升级后的 wss 请求也转发到 8443。
第二个 https 请求包含第一个请求的 sessionID: https://...&sid=C28C13EEEC525D203F8CA4E827605E0B.jvm1
正如我在 Apache 日志文件中看到的,这个 sessionID 被评估为stickySession:
...找到粘性会话 sid 的值 C28C13EEEC525D203F8CA4E827605E0B.jvm1
...找到路由 jvm1
...balancer://http-localhost: worker (htttps://mcsgest1.desy.de:8443/Whiteboard/) 重写为 htttps://mcsgest1.desy.de:8443/Whiteboard//?file=octocenter。 xml&地址=///&sid=C28C13EEEC525D203F8CA4E827605E0B.jvm1
第二个 https 请求仍在端口 8443 上,但升级到 websocket 协议后,ws-balancer 不会评估 sessionID 并重写为 8444:
...balancer://ws-localhost: worker (wss://mcsgest1.desy.de:8444/Whiteboard/) 重写为 wss://mcsgest1.desy.de:8444/Whiteboard//whiteboardendpoint
我必须在 Apache 配置中进行哪些更改才能为 wss 协议启用stickysession?我真的需要两个平衡器(http 和 ws)来平衡 websockets 吗?
c# - 使用粘性会话时是否需要 SignalR 背板?
我们为使用粘性会话的应用程序提供了一个多服务器、负载平衡的环境。我们正在考虑添加一个 SignalR 实现来向各个客户端发送更新。我玩过 SignalR 一点,所以我知道背板。我想知道,由于我们使用的是粘性会话,如果我们不需要实现背板,因为单个服务器正在处理身份验证后的用户请求。
amazon-web-services - AWS:将证书信息从 ELB 发送到 EC2
当在 AWS ELB 上启用粘性会话时,ELB 似乎将终止 SSL(AWS 论坛正在讨论这个问题)。我需要来自用户证书的信息来验证一些事情,所以我需要 ELB 将此信息转发给 EC2 实例。
如何让 ELB 给我用户的证书信息?有没有办法创建自定义标题?我能找到的只有这三个标题:Amazon docs on x-forwarded-headers。
正如我在第一个链接中所讨论的,我发布的另一个选项是持久会话。这是我唯一的选择吗?