我使用 squid 作为反向代理,在一个互联网 IP 上托管多个 Web 服务器。它运行良好,并且在过去几个月里一直如此。我刚刚注意到,发送到我的服务器的每个请求都被记录为来自 squid 服务器 IP 地址。
有没有什么方法可以让 squid 将原始 IP 传递给 Web 服务器?
答案1
Squid 使用 X-Forwarded-For 标头通过反向代理传递客户端 IP。您需要forwarded_for on
为 Squid 进行配置,并告诉您的后端服务器记录新的标头。
答案2
我观察到了两件事。
您需要启用forward_for
它,如果您iptables MASQUERADE
对来自输入接口的入站流量进行规则控制,则可能需要将其删除。
就我而言,我有一个出站规则,它会导致同样的问题,我刚刚删除了那个伪装规则,一切就好了
这是规则。
iptables --table nat --append POSTROUTING --out-interface $ETHERNET_INTERNET -j MASQUERADE
我刚刚删除了上面的伪装规则。