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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

它说我们可以在粘性会话中使用以下配置:

nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/session-cookie-name: "ingresscoookie"
nginx.ingress.kubernetes.io/session-cookie-hash: "sha1"
nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
nginx.ingress.kubernetes.io/session-cookie-max-age: "172800

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

这对我有用,因此我认为基于cookie的会话亲和力似乎不适用于websocket。

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

nginx.ingress.kubernetes.io/upstream-hash-by: "$remote_addr"

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

如何实现会话持久性?

我在K8s群集中有一个websocket .net应用程序。我需要使用nginx开源实现websocket的粘性会话。我已经阅读了Nginx和Kubernetes的文档。 https:...

答案

我知道过时的帖子,但可能会对他人有所帮助。您是否删除/注释了相似性和会话注释?

以上是关于Websocket应用程序的nginx-ingress粘性会话的主要内容,如果未能解决你的问题,请参考以下文章

WebSocket详解:初步认识WebSocket技术

android websocket 应用

Spring 4.0 WebSocket 示例应用程序:无法建立 websocket 连接

WebSocket 介绍-WebSocket API

gin建立websocket服务

瓶子 + WebSocket