问题标签 [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 投票
2 回答
5087 浏览

node.js - 与 docker swarm 的粘性会话

我有一个使用 socket.io 的 dockerized node.js 应用程序

通过 docker compose,我在同一服务器上的两个不同容器上为应用程序运行 2 个副本。然而,到达服务器的请求是以循环方式分发的。

有没有办法可以用来实现粘性会话?

我的 docker-compose.yml 如下所示

我使用 docker stack deploy 来运行应用程序的两个副本

0 投票
0 回答
162 浏览

f5 - 两个应用程序代理背后的粘性会话

他有两个 Web 应用程序:应用程序 A 和应用程序 B。它们都安装在服务器 1 和服务器 2 中(因此服务器 1 中的一个 A 实例,服务器 2 中的一个 A 实例。对于应用程序 B 相同)。应用 A 通过 SSO 导航到应用 B。我们使用 F5 负载均衡器来分发请求,我们不确定在这种情况下如何实现粘性会话,因为首先,我们不能基于 IP,因为它们位于反向代理后面,因此,IP 将始终是相同。此外,从应用程序 A 导航到应用程序 B 时,似乎 cookie 选项不起作用。(我不是负载均衡器专家......希望我提供了所需的所有信息)。对此的任何建议将不胜感激。设计如下

先感谢您!

0 投票
0 回答
42 浏览

heroku - 不支持 cookie 的应用程序的 heroku session-affinity

Heroku 会话亲和性提到粘性会话是通过传递 cookie 来实现的。但是我们将 heroku 用于不支持 cookie 的电视应用程序。粘性会话对我们来说非常重要。有谁知道在没有 cookie 支持的情况下是否可以在 heroku 上实现粘性会话?

0 投票
1 回答
1192 浏览

cookies - 跨所有 pod 的 Openshift 循环请求

我们希望在 openshift 中部署的所有 pod 之间进行循环请求。我在 Route 配置中配置了以下注释,但对所有 pod 的调用顺序是随机的:

我们有 3 个吊舱。我们希望请求具有序列 pod1,pod2,pod3,pod1,pod2,pod3,pod1....

但是随机设置上述注释后的真实行为,例如:pod1,pod1,pod2,pod2,pod3,pod1,pod2,pod2 ....这是不正确的。

我们是否需要配置任何 openshift 配置使其成为完美的轮换系统?

0 投票
1 回答
240 浏览

android - Android 和粘性会话

我有一个 Android 应用程序向 elb 后面的服务器发送请求。

不幸的是,与 iOS 不同,Android 似乎没有(自动)考虑粘性会话。

使用 Android 执行此操作的解决方案/最佳实践是什么?

0 投票
1 回答
1935 浏览

websocket - 用于 websocket 应用程序的 nginx-ingress 粘性会话

我在 K8s 集群中有一个 websocket .net 应用程序。我需要使用 nginx 开源实现 websocket 的粘性会话。

我已经阅读了 nginx 和 kubernetes 的文档。 https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md#session-affinity

它说我们可以将以下配置用于粘性会话:

但这似乎不起作用。我在这里尝试了 kubernetes 提供的示例代码https://github.com/kubernetes/ingress-nginx/blob/master/docs/examples/affinity/cookie/ingress.yaml

这对我有用,所以我相信基于 cookie 的会话亲和性似乎不适用于 websocket。

在进一步挖掘文档时,它说我可以使用 IP 哈希算法。所以我尝试使用下面的注释。

这也失败了。请求仍然使用默认算法进行平衡。

如何实现会话持久性?

0 投票
1 回答
1769 浏览

load-balancing - HAProxy 棒表存储自定义值

我想在stick-table中存储一个自定义“值”并在另一个ACL中使用它来选择服务器。

我有这个配置,它创建了带有标头值“x-external-id”作为键和 server-id 作为其值的stick-table。

这个配置产生了这个棒表:

值 (server-id) 由 HaProxy 根据处理请求的服务器设置。但我想在这里保存一个自定义值。可能吗?

0 投票
0 回答
54 浏览

networking - 与 Kubernetes 的基于路径的粘性会话

我在 Kubernetes 上有一个系统,我需要基于路径的粘性会话,但在 Internet 上找不到任何关于它的信息。

设想

我的系统公开了 2 个端点

当客户端点击 to 时/start,会返回一个会话 ID。客户随后将向/<sessionid>/dosomething. 这意味着会话 id 是动态生成的。

我想确保在其路径中具有相同会话 ID 的所有请求始终路由到同一个后端(并记住会话 ID 是动态生成的)。

注意 我更喜欢严重依赖网络而不是应用程序本身的解决方案(我不希望路由逻辑在应用程序代码中)

0 投票
1 回答
248 浏览

amazon-web-services - auth0+passport.js 超过 1 个实例的重定向过多

基础设施:

云:aws beanstalk 为容器代理服务器应用程序负载均衡器打开 nginx - 仅限 https,默认进程 (https) 私有子网中的 2+ 个实例启用端到端加密,遵循 https://docs.aws.amazon.com/elasticbeanstalk/latest /dg/configuring-https-endtoend.html https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-singleinstance-docker.html

运行 docker 的实例实例上的自签名证书

在本地,我们有一个 3 容器来模仿基础设施,

1 nginx:443 作为负载均衡器和 https 反向代理 2 应用程序容器:分别是 3000:3000、3001:3001 所以,还没有端到端加密

软件:Autho Passport ( https://github.com/auth0/passport-auth0 ) express react cookie-session 包

工作流程:打开网站,点击登录链接,然后将我们重定向到auth0登录页面,输入用户名/护照后,我们点击提交。

当我们运行超过 1 个实例时,我们会遇到“重定向太多次”。如果我在 aws 中打开目标组的粘性会话,问题就会消失。

在尝试本地 docker 环境时,我们看到了同样的情况。

在这段代码中,

逻辑总是命中 - if (!user),我们不确定为什么在多实例、负载均衡器设置中会发生这种情况。

更新:

对不起,我是新手,

我想知道我是否可以使用 cookie-session 而不是 express-session,因为 JWT 不应该在服务器中存储信息。

我之所以问,是因为我已经阅读了一些护照和 Auth0 的教程,并且它也只提到了表达式会话。

由于 Auth0 使用 JWT,我可以使用 cookie-session 吗?如果是这样,我会做错什么?

PS。这是我的会话配置:

请提供建议和帮助。谢谢!周杰伦

0 投票
3 回答
4520 浏览

spring - Kubernetes ingress-nginx 粘性会话不适用于 Spring Security

我有一个有状态的 spring 应用程序,我想将它部署到 kubernetes 集群。该应用程序将有多个实例,因此我需要使用 ingress-nginx 控制器启用 sticy 会话。我做了以下配置:

如果登录成功,ingress-nginx 将后续请求重定向到正确的 pod。但是,它有时会在 JSESSIONID 更改后切换到其他 pod(JSESSIONID cookie 在成功登录后由 spring-security 更改)并且即使用户凭据正确,前端也会重定向回登录页面。有没有人用 spring-security 尝试过 ingress-nginx ?

最好的祝福