日历存档: 2012 年 3 月 5 日

Nginx反代后WordPress无法记录真实ip

分类:折腾日期:2012-03-05 - 14:23:38评论:14条作者:老谢

今天老谢查看评论页面,发现评论者的ip全都是nginx反代服务器的ip地址,真实的ip地址全看不到,这个问题不大不小,老谢是个完美主义者,不解决这个问题挺别扭的,于是乎谷歌之,找到了可行的方法,下面与大家分享:

这个方法需要Nginx的HttpRealIpModule模块,如果您按照CentOS编译安装Nginx(附:管理脚本)进行编译的Nginx则不需要再次编译,因为这个安装教程里面已经编译了这个模块,如果没有编译这个模块,需要重新编译这个模块后才可以用。

在Nginx前端添加下面语句:

proxy_set_header X-Real-IP $remote_addr;

PS:如果您之前配置过nginx前端反代,后端apache记录正确访问者ip,这里也不需要进行再次添加了。

这时候,客户真实IP会保存在$_SERVER[‘HTTP_X_REAL_IP’]变量中,如果使用php程序,输出:echo $_SERVER[‘HTTP_X_REAL_IP’];

修改WordPress根目录下的wp-config.php:,在第二行添加:

if (isset($_SERVER['HTTP_X_REAL_IP'])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];
}

评论测试:

Nginx反代后WordPress无法记录真实ip

本文参考自:WordPress+Nginx+proxy取得真实IP