问题标签 [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.

0 投票
1 回答
72 浏览

asp.net - 使用负载均衡器时摆脱redis作为背板

给定

我们在 iis 上的 2 台服务器上有一个站点。在此之前,我们有一个负载均衡器。我们使用 redis for windows 作为背板,使用现有的 signalR hubg 提供搜索结果。

问题

现在我们在 redis for windows 上遇到了一些不好的问题。

我发现一些帖子指出使用粘性会话会使 redis 的使用过时。

这是正确的吗 ?当激活粘性会话时,signalR 也会自动改变其行为,还是我必须配置它?

非常欢迎任何提示

0 投票
1 回答
1132 浏览

php - 使用 nginx 对动态 php 站点进行负载均衡

我有三台服务器。一个用于负载平衡,另外两个用于服务 Web 应用程序。如果我将我的网页用作静态站点,我的负载平衡工作正常。但是当我登录到我的网页时,它没有正确响应,因为每次加载页面时它都会更改其服务器。在注销前不更改当前服务器的情况下,我怎么能做到这一点。我的负载平衡服务器配置是

0 投票
0 回答
484 浏览

load-balancing - 如何仅在关闭所有使用它的会话后才使 haproxy 的棒表条目过期

我目前正在使用 Haproxy 1.5,我有一个带有 2 台服务器的后端。我的应用服务器从两个客户端接收连接,我希望它们都归属于同一服务器。所有连接都有一个 url 参数 X,并且应该归属于同一服务器的会话具有相同的 url 参数 X 值。我使用一个棒表来保存特定 url 参数值使用的服务器,以便将来的连接可以归因于同一台服务器。

我希望能够随着负载的增加添加应用服务器。为了指示 haproxy 将以前的连接移动到新的应用程序服务器,我需要在服务器中没有会话(任一客户端)处于活动状态时使棒表条目过期。

谁能帮我这个?

0 投票
2 回答
3365 浏览

amazon-elb - AWS ELB 粘性会话能否用于后端请求?

我目前将我的 Web 应用程序托管在 AWS 上,我使用两个 ELB 实例,一个用于负载平衡前端请求到应用程序服务器,另一个用于负载平衡从应用程序服务器到 API 服务器的后端请求,就像这样(对不起,糟糕的ascii图):

换句话说,APP 服务器发出的 API 请求在两个后端 API 服务器之间进行负载均衡。

但是,因为我在 API 服务器上缓存响应,并使用在 API 服务器之间不共享的缓存失效机制,所以我希望用户的会话被卡在一个后端 API 服务器上。

我已经使用普通的 ELB 负载均衡器生成的 cookie 粘性将用户的会话粘在了一个 APP 服务器上,但是有没有办法让后端 ELB 粘在一个会话上?当然,这些请求不是来自浏览器,所以没有什么可以管理 cookie,而且似乎 ELB 只能使用 cookie 管理粘性。我可以模拟我的后端请求所需的 cookie 吗?

0 投票
1 回答
5316 浏览

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' 因集群和粘性会话而失败

说第二个更好!

0 投票
2 回答
1896 浏览

django - 关闭了 AWS 负载均衡器粘性的 Django 用户会话

我将 AWS Elastic Beanstalk 与 Elastic Load Balancer (ELB) 后面的 EC2 服务器一起使用。

我在 ELB 上启用了“粘性会话”,因为这是让 django 用户会话正常工作的唯一方法。但是,在流量高峰期间,这会导致问题,因为 ELB 不再平均分配每个传入请求。这通常会像迷你 DDOS 一样使 1 台服务器过载。

我想做的是使用服务器端用户会话,其中用户身份验证信息存储在我的 Redis 缓存中。我试过设置SESSION_ENGINE很多东西,比如:

然后,当我关闭粘性会话时,我无法登录,因为请求最终会到达不同的服务器,其中一些请求经过身份验证,而另一些则没有。那些不是,将我重定向回登录页面。

以下是我拥有的其他一些相关设置:

我究竟做错了什么?非常感谢。

0 投票
1 回答
256 浏览

tomcat - Tomcat 持久性管理器

我有 2 个 Tomcat 在使用 sticky_sessions=false 进行负载平衡。所以我需要跨Tomcats的“会话持久性”。Tomcat文档说有3种方法:

  1. Tomcat 集群
  2. 持久性管理器 + 共享目录
  3. 持久化管理器 + SQL 存储

集群不适合我,因为在它编写的文档中,配置它的 sticky_sessions 应该是真的。

我尝试了 Persistance Manager,但它看起来也不起作用,因为它仅在超时后才保持会话​​,因此使用 sticky_session=false 它不起作用。

持久性管理器可以立即持久化会话吗?

我阅读了有关 memcached-session-manager 的信息,但它看起来像 3d 派对解决方案,所以我不敢使用它。它是唯一的解决方案吗?

0 投票
1 回答
3652 浏览

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 吗?

0 投票
1 回答
325 浏览

c# - 使用粘性会话时是否需要 SignalR 背板?

我们为使用粘性会话的应用程序提供了一个多服务器、负载平衡的环境。我们正在考虑添加一个 SignalR 实现来向各个客户端发送更新。我玩过 SignalR 一点,所以我知道背板。我想知道,由于我们使用的是粘性会话,如果我们不需要实现背板,因为单个服务器正在处理身份验证后的用户请求。

0 投票
1 回答
98 浏览

amazon-web-services - AWS:将证书信息从 ELB 发送到 EC2

当在 AWS ELB 上启用粘性会话时,ELB 似乎将终止 SSL(AWS 论坛正在讨论这个问题)。我需要来自用户证书的信息来验证一些事情,所以我需要 ELB 将此信息转发给 EC2 实例。

如何让 ELB 给我用户的证书信息?有没有办法创建自定义标题?我能找到的只有这三个标题:Amazon docs on x-forwarded-headers

正如我在第一个链接中所讨论的,我发布的另一个选项是持久会话。这是我唯一的选择吗?