需要先安装必要的包,不然重新编译 nginx
会失败
apt install libmaxminddb0 libmaxminddb-dev mmdb-bin -y
然后 git clone
需要的组件
git clone https://github.com/leev/ngx_http_geoip2_module.git
编辑 lnmp1.x
文件夹下的 lnmp.conf
Nginx_Modules_Options='--with-http_addition_module --add-module=/root/ngx_http_geoip2_module'
然后 ./upgrade.sh
选择升级 nginx
,版本号输入当前的 nginx
版本
等待重新编译完成,然后查看编译组件情况
nginx -V
然后创建文件夹,下载数据库文件。我选的 country
,你可以在参考来源找到 city
的数据库文件
mkdir -p /usr/share/GeoIP2 cd /usr/share/GeoIP2 wget 'https://git.io/GeoLite2-Country.mmdb'
然后编辑 /usr/local/nginx/nginx.conf
,在 http
区域加上以下内容(只允许中国大陆访问)
geoip2 /usr/share/GeoIP2/GeoLite2-Country.mmdb { auto_reload 60m; $geoip2_metadata_country_build metadata build_epoch; $geoip2_data_country_code country iso_code; $geoip2_data_country_name country names en; } map $geoip2_data_country_code $allowed_country { default no; CN yes; }
然后在网站的 conf
的 server
区域加上
if ($allowed_country = no) { return 403; }
最后重启 nginx
lnmp nginx restart
参考来源
https://www.awaimai.com/2921.html
https://github.com/P3TERX/GeoLite.mmdb
https://www.cnblogs.com/toughcactus/p/14717227.html
发表回复