使用CDN后获取真实客户端地址

通常我们在使用cdn的时候可能获取的时候取到CDN节点的IP地址,而不会获取到访问者真实地址,所以我们需要通过反向代理的一个模块来实现此功能,如果你是nginx那么可以继续往下看:

 

使用此命令可以查看编译nginx时候的附加模块: /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.8.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_spdy_module –with-http_gzip_static_module –with-ipv6 –with-http_sub_module –with-http_realip_module

我们如果默认编译没有加入realip模块的话就需要在源码文件重新编译上这个模块:–with-http_realip_module 编译后,make install 可以覆盖安装.

 

然后在网站的配置文件中加入你的cdn ip 即可,例如:

set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;

# use any of the following two
real_ip_header CF-Connecting-IP;
#real_ip_header X-Forwarded-For;
real_ip_recursive on;
保存后重新nginx就可以了.如果你用的是cloudflare可以再这里 找到你需要的东西~~

分享到:

评论已关闭。