cdn抓取客户端真实IP


Nginx接入cdn以后日志抓取的不是真实IP

首先查看nginx是否有http_realip_module模块

# nginx -V | grep http_realip_module命令,查看是否已安装http_realip_module模块。

如果已在Nginx服务器上安装该模块,请跳过该步骤。如果没有在Nginx服务器上安装该模块,请重新编译Nginx服务并参考如下方法安装该模块。

wget http://nginx.org/download/nginx-1.12.2.tar.gz

tar zxvf nginx-1.12.2.tar.gzcd nginx-1.12.2./configure –user=www –group=www –prefix=/alidata/server/nginx –with-http_stub_status_module –without-http-cache –with-http_ssl_module –with-http_realip_module

make

make install

kill -USR2 `cat /alidata/server/nginx/logs/nginx.pid`

kill -QUIT `cat /alidata/server/nginx/logs/ nginx.pid.oldbin`

1.修改Nginx服务器配置文件。

在location / {}中添加以下内容:

​ proxy_redirect off;

​ set_real_ip_from 0.0.0.0/0;

​ real_ip_header X-Forwarded-For;

​ proxy_set_header X-Forwarded-For $remote_addr;

  1. 修改log_format日志记录格式:

打开nginx.conf配置文件,定位到http配置部分的log_format,在log_format中添加x-forwarded-for字段,替换默认的remote-address字段。

修改后的log_format内容如下:

log_format main ‘$http_x_forwarded_for - $remote_user [$time_local] “$request” ‘ ‘$status $body_bytes_sent “$http_referer” ‘ ‘“$http_user_agent” ‘;

可能会报warn:nginx -t

nginx: [warn] could not build optimal proxy_headers_hash, you should increase either proxy_headers_hash_max_size: 512 or proxy_headers_hash_bucket_size: 64; ignoring proxy_headers_hash_bucket_size

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

在构建server_names_hash时候出现问题,建议你增加server_names_hash_max_size或者proxy_headers_hash_bucket_size的大小来解决。

Vim /etc/nginx/nginx.conf

proxy_headers_hash_bucket_size 1024;

types_hash_bucket_size 1024;

看服务器配置,如果服务器资源有限可适当调整 以平衡资源性能.


文章作者: 云上的小雨滴
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 云上的小雨滴 !
评论
  目录