网站使用CDN的情况下nginx日志如何记录真实IP

网站避免攻击以及需要加速的情况下使用了CDN的情况下,nginx的访问日志只会记录节点IP,无法记录用户真实访问IP。下面就教大家如何记录用户真实IP。废话不多说下面以宝塔面板为例:

方法一:

1、修改nginx.conf配置文件,所在路径是 /www/server/nginx/conf 

在 http{ 后面加入这一段:

log\_format realiplog '$http\_x\_forwarded\_for - $remote\_user [$time\_local] "$request" $status $body\_bytes\_sent "$http\_referer" "$http\_user\_agent" ';

如下图所示:

2、找到已开启CDN的网站的配置文件,将最后的

access_log /www/wwwlogs/域名.log;

改成

access_log /www/wwwlogs/域名.log realiplog;

如下图所示:

方法二:

在nginx #include luawaf.conf; 后面配置还下面代码然后重启

如下图所示:

代码如下:

#获取用户真实ip

代码语言:C
复制
set_real_ip_from 0.0.0.0/0;
    real_ip_header X-Forwarded-For;
proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;