我已将NGINX配置为反向代理,并为具有多个副本的后端web应用程序启用web套接字。来自NGINX的请求对Kubernetes服务执行proxy_pass
,后者反过来对映射到该服务的端点的请求进行负载平衡。我需要确保来自特定客户端的请求在访问的生命周期内被代理到同一个Kubernetes后端pod,基本上保持会话持久性。
尝试在Kubernetes服务中设置sessionAffinity: ClientIP
,但这是基于NGINX代理的客户端IP进行路由的。有没有一种方法可以让Kubernetes服务基于请求来源的实际客户端IP而不是NGINX内部pod IP来进行关联?
这不是Nginx的选项。或者更确切地说,在用户空间中,如果没有很多非常花哨的网络操作,它就不是一个选项。您需要找到另一个选项,通常是最外层HTTP代理层中的应用程序特定代理规则。