宝塔安装nginx geoip2 扩展 并屏蔽指定国家ip请求

一,安装geoip2依赖扩展

yum install libmaxminddb-devel -y

二,下载ngx_http_geoip2_module

git clone https://github.com/leev/ngx_http_geoip2_module.git

三,nginx编译扩展

在安装nginx的时候选择编译安装,并手动增加扩展
在这里插入图片描述
模块参数填写第二步下载的文件位置,此处我下载文件位置在/root/ngx_http_geoip2_module
–add-module=/root/ngx_http_geoip2_module
然后点击提交,编译安装好nginx
然后查看 nginx -V
在这里插入图片描述

四,下载geoip2数据库

nginx扩展安装好了之后实际上有一个默认的数据库,位置在/usr/share/GeoIP/ 目录下,我们需要使用自己下载的最新数据
https://geolite.clash.dev

wget https://geolite.clash.dev/Country.mmdb

这里只有国家数据,也可以自己到官网去下载
https://dev.maxmind.com/geoip/geolite2-free-geolocation-data,

五,配置nginx

在nginx配置文件中,http段加入以下代码。以宝塔安装的nginx为例,打开/www/server/nginx/conf/nginx.conf文件,在http中添加

# 国家代码源
          geoip2 /www/Country.mmdb {
              $geoip2_data_country_code country iso_code;
          }
          # 映射 MM
          map $geoip2_data_country_code $allowed_country {
            default yes;
            CN yes;
          }

其中iso_code可参考 http://doc.chacuo.net/iso-3166-1/ 二位字母查询
修改 对应站点的配置文件,在/www/server/panel/vhost/nginx 目录中的网站配置文件的server段中添加

if ($allowed_country = no) 
   {
      return 403;
   }

重启nginx,然后根据不同国家ip网络测试即可。

六,参考文档

https://www.cnblogs.com/aitansi/articles/14485883.html?ivk_sa=1024320u
https://www.lmlphp.com/user/8336/article/item/378082/
https://me.jinchuang.org/archives/1169.html/comment-page-1

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值