社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NGINX

在NGINX入口上对SSL Passthrough使用会话关联(Cookies)

Matt Woodward • 4 年前 • 499 次点击  

TL;博士


大家好,

我有一个运行中的Azure Kubernetes服务(AKS)正在运行(1.11.3),并且已经配置了 NGINX-Ingress

我已经成功地在入口控制器上配置了SSL passthrough,以便TLS在Pods处终止,因此我可以使用HTTP2(根据这个 article ). 现在我想设置会话关联(使用Cookies),以便将连接路由到同一个pod进行有状态行为(登录到应用程序)。

为此,我尝试在ingress对象上使用以下注释:

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

但是,我没有看到第一个请求返回的“route”cookie。我已经解决了所描述的问题 here 并确保入口设置正确。然后我发现这条信息在 docs :

不在第7层(HTTP)上,使用SSL Passthrough会使所有 在入口对象上设置的其他注释。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/55418
 
499 次点击  
文章 [ 1 ]  |  最新文章 4 年前
user1086801
Reply   •   1 楼
user1086801    5 年前

简而言之:不,这是不可能的。第4层不知道什么是http,它只看到字节来回流动。你可以根据ip地址来建立关联,而不是cookies,因为它需要一个7层代理解决方案。根据您的情况,您可以在第7层运行一个代理,该代理可以解密通信量,然后使用另一个证书对其进行加密以供内部使用。所有有效负载(例如减去SNI)都没有按照SSL进行加密,这意味着为了对cookie进行某种关联,代理将需要在检查数据之前对其进行解密。