做了个实验,使用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---------