问题标签 [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.
node.js - 与 docker swarm 的粘性会话
我有一个使用 socket.io 的 dockerized node.js 应用程序
通过 docker compose,我在同一服务器上的两个不同容器上为应用程序运行 2 个副本。然而,到达服务器的请求是以循环方式分发的。
有没有办法可以用来实现粘性会话?
我的 docker-compose.yml 如下所示
我使用 docker stack deploy 来运行应用程序的两个副本
f5 - 两个应用程序代理背后的粘性会话
他有两个 Web 应用程序:应用程序 A 和应用程序 B。它们都安装在服务器 1 和服务器 2 中(因此服务器 1 中的一个 A 实例,服务器 2 中的一个 A 实例。对于应用程序 B 相同)。应用 A 通过 SSO 导航到应用 B。我们使用 F5 负载均衡器来分发请求,我们不确定在这种情况下如何实现粘性会话,因为首先,我们不能基于 IP,因为它们位于反向代理后面,因此,IP 将始终是相同。此外,从应用程序 A 导航到应用程序 B 时,似乎 cookie 选项不起作用。(我不是负载均衡器专家......希望我提供了所需的所有信息)。对此的任何建议将不胜感激。设计如下
先感谢您!
heroku - 不支持 cookie 的应用程序的 heroku session-affinity
Heroku 会话亲和性提到粘性会话是通过传递 cookie 来实现的。但是我们将 heroku 用于不支持 cookie 的电视应用程序。粘性会话对我们来说非常重要。有谁知道在没有 cookie 支持的情况下是否可以在 heroku 上实现粘性会话?
cookies - 跨所有 pod 的 Openshift 循环请求
我们希望在 openshift 中部署的所有 pod 之间进行循环请求。我在 Route 配置中配置了以下注释,但对所有 pod 的调用顺序是随机的:
我们有 3 个吊舱。我们希望请求具有序列 pod1,pod2,pod3,pod1,pod2,pod3,pod1....
但是随机设置上述注释后的真实行为,例如:pod1,pod1,pod2,pod2,pod3,pod1,pod2,pod2 ....这是不正确的。
我们是否需要配置任何 openshift 配置使其成为完美的轮换系统?
android - Android 和粘性会话
我有一个 Android 应用程序向 elb 后面的服务器发送请求。
不幸的是,与 iOS 不同,Android 似乎没有(自动)考虑粘性会话。
使用 Android 执行此操作的解决方案/最佳实践是什么?
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 哈希算法。所以我尝试使用下面的注释。
这也失败了。请求仍然使用默认算法进行平衡。
如何实现会话持久性?
load-balancing - HAProxy 棒表存储自定义值
我想在stick-table中存储一个自定义“值”并在另一个ACL中使用它来选择服务器。
我有这个配置,它创建了带有标头值“x-external-id”作为键和 server-id 作为其值的stick-table。
这个配置产生了这个棒表:
值 (server-id) 由 HaProxy 根据处理请求的服务器设置。但我想在这里保存一个自定义值。可能吗?
networking - 与 Kubernetes 的基于路径的粘性会话
我在 Kubernetes 上有一个系统,我需要基于路径的粘性会话,但在 Internet 上找不到任何关于它的信息。
设想
我的系统公开了 2 个端点
当客户端点击 to 时/start
,会返回一个会话 ID。客户随后将向/<sessionid>/dosomething
. 这意味着会话 id 是动态生成的。
我想确保在其路径中具有相同会话 ID 的所有请求始终路由到同一个后端(并记住会话 ID 是动态生成的)。
注意 我更喜欢严重依赖网络而不是应用程序本身的解决方案(我不希望路由逻辑在应用程序代码中)
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。这是我的会话配置:
请提供建议和帮助。谢谢!周杰伦
spring - Kubernetes ingress-nginx 粘性会话不适用于 Spring Security
我有一个有状态的 spring 应用程序,我想将它部署到 kubernetes 集群。该应用程序将有多个实例,因此我需要使用 ingress-nginx 控制器启用 sticy 会话。我做了以下配置:
如果登录成功,ingress-nginx 将后续请求重定向到正确的 pod。但是,它有时会在 JSESSIONID 更改后切换到其他 pod(JSESSIONID cookie 在成功登录后由 spring-security 更改)并且即使用户凭据正确,前端也会重定向回登录页面。有没有人用 spring-security 尝试过 ingress-nginx ?
最好的祝福