Nginx获取CDN转发的访客真实IP

为了保护自己的网站,部分站长都会选择使用CDN来加速网站,还有有效的防止CC、DDoS的影响!但是呢,也是有一个非常不好的地方就是不能正确的统计地区的访客,这样对于分析数据有很大的不利。SO,问题来了,Nginx环境下该如何解决呢?

编译Nginx

编译Nginx,增加ngx_http_realip_module模块。我的Nginx版本是1.9.12,默认包含了该模块,查看模块有没有有两种办法:执行

nginx -V 2>&1 | grep -o http_realip

看看有没有返回红色的

http_realip

有即表示此模块已经加载!

还有一种办法就是执行:

nginx -V

查看编译参数,技术宅返回的编译参数为:

configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-openssl=/usr/src/openssl-1.0.2g --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-ipv6 --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-ld-opt=-ljemalloc --add-module=../ngx_cache_purge-2.3 --add-module=/usr/src/nginx-ct-1.2.0

我的返回结果中有:

--with-http_realip_module

表示此模块已经编译了,剩下就是编辑Nginx的Conf文件了。

如果没有此模块,只需要查看编译参数,然后执行:

./configure
--prefix=/usr/local/nginx --user=www --group=www --with-openssl=/usr/src/openssl-1.0.2g --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-ipv6 --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-ld-opt=-ljemalloc --add-module=../ngx_cache_purge-2.3 --add-module=/usr/src/nginx-ct-1.2.0

即可。

然后在以下配置文件的的指定位置加入以下代码:

1、Nginx安装目录下conf文件夹中的nginx.conf

2、站点配置文件的server

3、站点配置文件的location

location /http_realip {
         set_real_ip_from 222.73.199.0/24;
         set_real_ip_from 103.245.81.0/24;
         set_real_ip_from 61.160.245.0/24;
         set_real_ip_from 120.195.110.0/24;
         set_real_ip_from 112.82.223.0/24;
         set_real_ip_from 60.191.139.0/24;
         set_real_ip_from 101.64.234.0/24;
         real_ip_header Cdn-Real-Ip;
           real_ip_recursive on;
         }

其中的IP段为您CDN服务商提供的,需要因站而异,我用的是Verycloud,所以就这样了,记得

real_ip_header Cdn-Real-Ip;

改为您服务商的真实响应头!

然后重载Nginx

执行service nginx reload或者service nginx restart

centos 7可以执行

systemctl restart nginx.service

CDN推荐,Verycloud,每月免费赠送50G分发流量,介绍请前往:https://jszbug.com/cdn-open-after-ssl-solution.html

使用CDN后缩略图出现问题?https://jszbug.com/after-ali-timthumb-cdn-is-not-displayed.html

技术分享

Tinection主题幻灯片随机播放更换方案

2016-3-14 10:38:05

技术分享

Wordpress使用阿里云OSS+CDN并实现附件ssl访问

2016-3-27 12:26:38

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索

关于我们

技术宅,专注分享,专注技术!分享互联网科技新闻轶事,分享生活小常识,各种数码使用小技巧!互联网的精神本就是分享,我们坚信分享会带来更多的进步!

Copyright © 2020 技术宅 苏ICP备17056378号 苏公网安备32010202010371号 - 查询 29 次,耗时 0.1716 秒 南京市玄武区酷芯壳网络科技中心 提供技术支持 安全联盟认证