52ll.org
52ll.org

lnmp.org nginx 屏蔽地区ip

需要先安装必要的包,不然重新编译 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;
        }

然后在网站的 confserver 区域加上

        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

发表回复

textsms
account_circle
email

52ll.org

lnmp.org nginx 屏蔽地区ip
需要先安装必要的包,不然重新编译 nginx 会失败 apt install libmaxminddb0 libmaxminddb-dev mmdb-bin -y 然后 git clone 需要的组件 git clone https://github.com/leev/ngx_…
扫描二维码继续阅读
2022-05-18