做了个实验,使用php,test.php代码如下:
<?
//php获取ip的算法
$remoteaddr=$_SERVER["REMOTE_ADDR"];
echo $remoteaddr;
echo "---";
$remotehost=$_SERVER["REMOTE_HOST"];
echo $remotehost;
echo "---";
$xforwardedfor=$_SERVER["HTTP_X_FORWARDED_FOR"];
echo $xforwardedfor;
echo "---";
$xrealip=$_SERVER["HTTP_X_REAL_IP"];
echo $xrealip;
?>
然后对于配置1
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
server_name
bbb.com;
proxy_pass
aaa.com;
访问bbb.com/test.php得到221.214.216.194---221.214.216.194---228.94.9.112, 192.168.0.1---192.168.0.1
之后去掉proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;这一行,既配置2后在实验
得到221.214.216.194---221.214.216.194---228.94.9.112---192.168.0.1---1.1
也就是说$_SERVER["HTTP_X_FORWARDED_FOR"]里面的内容变了少了192.168.0.1这一内网ip
但是我要怎么配置才能让test.php记录到的地址和不通过反向代理直连的时候一样呢?
注:
直连的时候aaa.com/test.php结果为:228.94.9.112---228.94.9.112---------
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/46809
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.