为了保护自己的网站,部分站长都会选择使用CDN来加速网站,还有有效的防止CC、DDoS的影响!但是呢,也是有一个非常不好的地方就是不能正确的统计地区的访客,这样对于分析数据有很大的不利。SO,问题来了,Nginx环境下该如何解决呢?
编译Nginx
编译Nginx,增加ngx_http_realip_module
模块。我的Nginx版本是1.9.12,默认包含了该模块,查看模块有没有有两种办法:执行
1
|
nginx
-
V
2
>
&
1
|
grep
-
o
http_realip
|
看看有没有返回红色的
1
|
http_realip
|
有即表示此模块已经加载!
还有一种办法就是执行:
1
|
nginx
-
V
|
查看编译参数,技术宅返回的编译参数为:
1
|
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
|
我的返回结果中有:
1
|
--
with
-
http_realip_module
|
表示此模块已经编译了,剩下就是编辑Nginx的Conf文件了。
如果没有此模块,只需要查看编译参数,然后执行:
1
2
|
.
/
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
段
1
2
3
4
5
6
7
8
9
10
11
|
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,所以就这样了,记得
1
|
real_ip_header
Cdn
-
Real
-
Ip
;
|
改为您服务商的真实响应头!
然后重载Nginx
1
|
执行
service
nginx
reload或者
service
nginx
restart
|
centos 7可以执行
1
|
<
span
class
=
"pln"
>
systemctl
restart
nginx
<
/
span
>
<
span
class
=
"pun"
>
.
<
/
span
>
<
span
class
=
"pln"
>
service
<
/
span
>
|
CDN推荐,Verycloud,每月免费赠送50G分发流量,介绍请前往:https://www.0513c.com/cdn-open-after-ssl-solution.html
使用CDN后缩略图出现问题?https://www.0513c.com/after-ali-timthumb-cdn-is-not-displayed.html