宝塔面板Nginx+GeoIP2进行地域限制

网络 2020-08-27 本文共1046个字,预计耗時3分钟 1.62K次阅读
文章摘要:nginx遇到需要屏蔽特定IP或者特定国家区域,除了一些web防火墙可以满足,如果自己够折腾然后也追求免费可以试试Geoipz2模块,方便实现限定IP功能。 1.下载模块 目录自定义 cd /www mkdir ngx_geoip cd n...

宝塔面板Nginx+GeoIP2进行地域限制

nginx遇到需要屏蔽特定IP或者特定国家区域,除了一些web防火墙可以满足,如果自己够折腾然后也追求免费可以试试Geoipz2模块,方便实现限定IP功能。

1.下载模块 目录自定义

cd /www 
mkdir ngx_geoip 
cd ngx_geoip 
git clone https://github.com/leev/ngx_http_geoip2_module.git 
cd ngx_http_geoip2_module 
pwd  #记下完整路径名 这里是 /www/ngx_geoip/ngx_http_geoip2_module

2.重新编译nginx 可以用 宝塔的一键 编译脚本位置 /www/server/panel/install/nginx.sh

注意:这个脚本 重新编译会 初始化 nginx的主配置文件,如果之前有改动过 请注意备份

在脚本种增加 模块,在./configure后面添加如下命令即可:

--add-module=/www/ngx_geoip/ngx_http_geoip2_module  #路径根据自己的修改

等待完成可以 nginx -V 是否 添加,出现了 如下模块表示 安装成功

Nginx+GeoIP2进行地域限制

3.下载GeoIP数据库地址 :

http://www.modsecurity.cn/practice/files/geo/GeoLite2-Country.mmdb

可以新建一个目录存放数据库

cd /www
mkdir geoip
cd geoip
wget http://www.modsecurity.cn/practice/files/geo/GeoLite2-Country.mmdb

4.配置

http段,在nginx主配置文件中配置:

geoip2 /www/geoip/GeoLite2-Country.mmdb {  #路径根据自己的修改
    $geoip2_data_country_code country iso_code; 
}
#允许本地网段访问 白名单
geo $allow_ip{
 default no;
 172.86.126.83 yes;  #设置0,1 也可以
}
#配置地区访问
map $geoip2_data_country_code $allowed_country {
  default no;
  CN yes;
}

想要做限制的具体站点的server段配置:

#本地网段白名单
if ($allow-ip = yes ) {
     set $allowed_country yes;
}
#国家地区白名单
if($allowed_country = no){
    return  403;
}

配置完成 最后重启一下nginx就行了。

版权免责申明
① 本站源码模板等资源SVIP用户永久不限量免费下载
② 所有资源来源于网络收集,如有侵权,请联系站长进行删除处理。
③ 分享目的仅供大家学习和交流,请不要用于商业用途,否则后果自负。
④ 如果你有源码需要出售,可以联系管理详谈。
⑤ 本站提供的源码、模板、插件等等资源,都不包含技术服务请大家谅解。
⑥ 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。
⑦ 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。
⑧ 网站资源绝不做任何二次加密或添加后门(原版加密除外)
常见问题F&Q
需要积分的资源怎么下载?
您可以注册后签到等活跃动作获得积分,积分可下载,也可充值升级等级免费下载。
源码模板等文件安全吗?有没有后门病毒吗?
站内资源标有“已测试”标签的资源源码,表示已经在本地安装测试调试过才分享出来的,可以保证一定的安全;若不放心可以自行下载模板资源后使用D盾等查杀工具扫一遍确认安全。
本站网站模板等源码提供安装服务吗?
本站资源收集于网络并分享出来共同学习,不提供免费安装服务,模板源码安装等需要有一定熟悉度,小白用户可以下载资源后雇人安装调试。