我们当前有以下设置:
[Client] -> [haproxy] -> [Nginx] -> [App Servers]
Nginx 当前通过设置 cookie 即来设置与应用服务器的 cookie 亲和性:public-client
。但是,随着 HAProxy 的引入,客户端不再存在 cookie,与应用服务器的会话亲和性被破坏。
我在阅读文档时发现了一个名为应用会话这可能有用,但看起来已被弃用。建议使用棍棒桌但我不太清楚如何保存具有该属性的 cookie。
有谁知道如何实现这一点?
笔记:我完全了解反向代理的重复,但我们的架构需要它。
发现问题
因此,根据下面的评论,我tcdump
在 HAProxy 和 Nginx 服务器上运行以验证 cookie 未设置/传递的位置。
我运行的命令供参考:
sudo /usr/sbin/tcpdump -A -l dst port 80 -i any | grep "^Cookie: "
这显示了 HAProxy 和 Nginx 服务器上的应用程序 cookie。但是,Nginx 应该设置的 cookie 不在流向 HAProxy 的流量中,这导致问题归咎于 Nginx 未设置 cookie。