number321 发表于 2013-10-09 17:47

怎样解决使用squid作为代理时,被代理网站无法统计真实客户端IP的问题呢?

假如有一个论坛之类的网站在web服务器上,用户是通过squid代理访问web服务器,那么从web服务器上看所有的用户都是来自于squid服务器的IP。

那么用户注册IP等就无法统计到真实信息。即使程序是自己写的,可以通过x-forwarded-for信息来获取真实IP,但web服务器的日志里记录的IP也都是squid服务器的IP,可能还有一些其他的地方也会有类似的问题。

请问怎样解决这个问题呢?

alexpdl 发表于 2013-10-10 13:56

类似Fikker反向代理服务器,源站可以通过 X-Forwarded-For 获取用户的真实的IP地址:
a、Fikker 通过 HTTP 头传递用户 IP 地址给源站,例如:X-Forwarded-For: 21.23.44.78 。
b、如出现多个 IP 时,例如:X-Forwarded-For: 21.23.44.78; 156.24.66.231,表明用户请求经过多次 Fikker 转发,这时有效起始地址为第一个,即 21.23.44.78 。

可以参考 Fikker 反向代理服务器,CDN系统的帮助,有代码可参考;

alexpdl 发表于 2013-10-10 13:57

帮助页面:
http://www.fikker.com/webcache/help/x-forwarded-for.html
页: [1]
查看完整版本: 怎样解决使用squid作为代理时,被代理网站无法统计真实客户端IP的问题呢?