gpt4 book ai didi

nginx在haproxy后在 Varnish 后面

转载 作者:行者123 更新时间:2023-12-03 17:45:16 28 4
gpt4 key购买 nike

我的Nginx服务器位于haproxy之后,后者位于Varnish之后:

请求网页=> Varnish => HaProxy => Nginx

我的问题是我无法检索客户端的IP地址,在Nginx日志中,我只有haproxy的IP地址,因此我认为XForwardfor不好。

这就是我对Varnish的看法:

remove req.http.X-Forwarded-For;
set req.http.X-Forwarded-For = req.http.rlnclientipaddr;

这就是我穿上的haproxy:

期权前转

在nginx中,我已经配置了http_real_ip_module,我有:

set_real_ip_from 192.168.1.2;
real_ip_header X-Forwarded-For;

谢谢

PS:如果我除去Varnish,并将Haproxy放在端口80上,那么我有真正的IP地址。

最佳答案

Haproxy 似乎并没有真正消耗 x-forwarded-for header 。看来它只是取代了它。如果您运行的是 1.5 的更高版本(我认为是 17 或更高版本),那么您实际上可以进行变量连接,这意味着您可以自己设置 x-forwarded-for header ,而无需使用选项 forwardfor。我正在一个非常大的 haproxy 实现中执行此操作,并且运行良好。

另一种选择是更改 haproxy 选项 forwardfor header 以使用不同的 header 。这意味着在 nginx 服务器上,您必须查看两个 header 。来自 varnish 的一个将拥有最终用户的 IP 地址,来自 haproxy 的一个将拥有 varnish 服务器的 IP 地址。为此,haproxy 配置如下所示:

option forwardfor header varnish-x-forwarded-for

关于nginx在haproxy后在 Varnish 后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18146032/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com