Varnish 前面的 HAProxy 未设置 X-FORWARDED-FOR

Varnish 前面的 HAProxy 未设置 X-FORWARDED-FOR

直到最近几天,我们的架构如下:HAProxy -> 2 个后端服务器

现在我们有:HAProxy -> Varnish -> 2 个后端服务器

之前,HAProxy 每次都会正确设置“X-FORWARDED-FOR”标头。但现在,它只会设置标头有时

经过有时我的意思是:我向一个 PHP 脚本发出请求,打印 $_SERVER 的内容(保存讨论中的标题)。

无论我发出多少次请求,HAProxy 都不会设置标头。但是,如果我向脚本发出请求,然后快速(在请求结束之前)点击刷新(因此基本上我同时发出 2 个请求),则标头正在设置。

是否有人偶然发现过这个非常奇怪的问题并能给我指明正确的方向?

注意:将 varnish 放在 HAProxy 前面不是一个选择。

答案1

很可能是你忘记在 haproxy 配置中使用“option http-server-close”。之前没问题,因为你的后端服务器默认没有启用 keep-alive。

相关内容