配置设置:
192.168.18.130 :Ubuntu 12.04 上的 Squid3 代理服务器
192.168.18.131 :正在运行的 Web 服务器
192.168.18.132 :用户
我希望使用 IP 在 Web 服务器中运行的 PHP 页面中可见。
目前我没有得到 X_Forwarded_For
答案1
标题通常是连字符而不是下划线。所以是这样的X-Forwarded-For
。我相信 Squid 应该默认启用这个。
验证 squid 是否发送此标头的最佳方法是查看数据包捕获,例如wireshark。然后您就可以确定问题出在 squid 还是 PHP 上,而不必尝试同时解决两者的问题。
答案2
确定转发未设置为除“开启”之外的任何值(默认)
答案3
mod_extract_forwardedapache 模块将从 squid 发出的 HTTP 标头中提取 x-forwarded-for 并将其正常传递远程地址到 apache/php 的其余部分。
确保您在 squid.conf 中正确设置了 x-forwarded-for 选项,并且您没有删除/限制此 HTTP 标头,默认情况下它是开启的,并且还会添加“via”标头。
我在生产中用它,有效,很好。