需要在生产环境统计网站各个域名相关的流量等信息,同时由于在日志中看见大量国外IP爬虫和嗅探行为,需要禁止所有国外IP访问。这里才有两个nginx插件实现。
nginx-module-vts:
ngx_http_geoip_module
https://github.com/leev/ngx_http_geoip2_module
通过编译nginx进行,首先将两个模块的代码通过git clone到某个目录下
yum install libmaxminddb-devel -y
/configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=/deployment/nginx-module-vts/ --with-http_v2_module --add-module=/deployment/ngx_http_geoip2_module
make -j4
make install
http {
vhost_traffic_status_zone;
...
server {
...
location /status {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
}
}
在nginx.conf http下加入如下代码:
从
https://github.com/P3TERX/GeoLite.mmdb 获取
GeoLite2-Country.mmdb 放到/usr/share/GeoIP下
从https://github.com/v2fly/geoip 后去geoip.dat 放在/usr/share/GeoIP
安装
geoip2 /usr/share/GeoIP/GeoLite2-Country.mmdb {
auto_reload 5m;
$geoip2_data_country_code country iso_code;
}
map $geoip2_data_country_code $disallowed_country {
default yes;
CN no;
}
在需要的location下加入:
if ($disallowed_country = yes) {
return 403;
}
本文为Lokie.Wang原创文章,转载无需和我联系,但请注明来自lokie博客http://lokie.wang