今天查了一下网站的访问日志(因为是测试站点,一直没看过),发现日志中记录的IP地址全是CDN节点的,就想着怎么捣鼓一下nginx的配置让它能记录一下用户的直实IP,说干就干,上百度,查资料,做测试。

以下是修改教程,已经了测试

要求:

1、服务器环境:宝塔面板 nginx php mysql

2、CDN环境:阿里云CDN

修改方法

1、打开 nginx 配置

找到 nginx 快捷菜单,一般在首页 软件区,如果没有去软件商店找

 宝塔面板中nginx在CDN环境下获取用户真实IP的方法

2、找到配置修改项

 宝塔面板中nginx在CDN环境下获取用户真实IP的方法

3、添加以下代码,

set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;

添加后如下图所示:

 宝塔面板中nginx在CDN环境下获取用户真实IP的方法

4、重启nginx

 宝塔面板中nginx在CDN环境下获取用户真实IP的方法

5、观察你的网站的用户访问日志获取的IP是否是用户的真实IP呢

宝塔面板网站日志默认存放地址

/www/wwwlogs

补充

1、以上操作只在阿里云CDN下测试成功了

2、修改 nginx 配置之前一定要备份一下,否则修改出错不好还原

3、如果修改后,网站日志无法生成,那检查一下复制的代码前后是不是有空格 (个人遇到了这种情况)

4、如果你没有使用CDN,请勿修改

5、获取到用户IP地址,不一定为真实的IP地址,可能是经过了多重代理后的IP。