前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx使用GeoIP模块限制IP访问

Nginx使用GeoIP模块限制IP访问

作者头像
陳斯托洛夫斯記
发布2022-10-27 15:43:04
3.3K0
发布2022-10-27 15:43:04
举报
文章被收录于专栏:XBDXBD

安装geoip模块

代码语言:javascript
复制
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx.pid \
--user=nginx \
--group=nginx \
--with-stream \
--with-threads \
--with-file-aio \
--with-http_v2_module \
--with-http_mp4_module \
--with-http_sub_module  \
--with-http_ssl_module \
--with-http_geoip_module

下载IP数据库

代码语言:javascript
复制
# 官网地址:https://www.miyuru.lk/geoiplegacy

# 下载国家数据库
wget https://dl.miyuru.lk/geoip/maxmind/country/maxmind.dat.gz
gzip -d maxmind.dat.gz
mv maxmind.dat /usr/local/nginx/geoip/GeoCountry.dat

# 下载城市数据库
wget https://dl.miyuru.lk/geoip/maxmind/city/maxmind.dat.gz
gzip -d maxmind.dat.gz
mv maxmind.dat /usr/local/nginx/geoip/GeoCity.dat

修改nginx配置

代码语言:javascript
复制
# 添加IP数据库
http {
    ...
    geoip_country /usr/local/nginx/geoip/GeoCountry.dat;
    geoip_city /usr/local/nginx/geoip/GeoCity.dat;
    ...
}

# 屏蔽国家
server {
    ...
    location / {
        ...
        if ($geoip_country_code != CN) {	# 禁止非中国IP访问
            return 403;
        }
        ...
    }
    ...
}

# 屏蔽城市
server {
    ...
    location / {
        ...
        if ($geoip_city = Beijing) {
            return 403;
        }
        ...
    }
    ...
}

# 屏蔽省份
# 屏蔽省份不能使用说明中的Henan、Liaoning等字眼,需要使用ISO3166规定的代码,代码参见https://www.maxmind.com/download/geoip/misc/region_codes.csv
server {
    ...
    location / {
        ...
        if ($geoip_region = 22) {
            return 403;
        }
        ...
    }
    ...
}

GeoIP相关参数

代码语言:javascript
复制
# 国家参数
$geoip_country_code #两位字符的英文国家码。如:CN, US
$geoip_country_code3 #三位字符的英文国家码。如:CHN, USA
$geoip_country_name #国家英文全称。如:China, United States

# 城市参数
$geoip_city_country_code #也是两位字符的英文国家码。
$geoip_city_country_code3 #上同
$geoip_city_country_name #上同.
$geoip_region #这个经测试是两位数的数字,如杭州是02, 上海是 23
$geoip_city #城市的英文名称。如:Hangzhou
$geoip_postal_code #城市的邮政编码。国内该字段为空
$geoip_latitude #纬度
$geoip_longitude #经度

# 省份参数
CN,01,”Anhui”
CN,02,”Zhejiang”
CN,03,”Jiangxi”
CN,04,”Jiangsu”
CN,05,”Jilin”
CN,06,”Qinghai”
CN,07,”Fujian”
CN,08,”Heilongjiang”
CN,09,”Henan”
CN,10,”Hebei”
CN,11,”Hunan”
CN,12,”Hubei”
CN,13,”Xinjiang”
CN,14,”Xizang”
CN,15,”Gansu”
CN,16,”Guangxi”
CN,18,”Guizhou”
CN,19,”Liaoning”
CN,20,”Nei Mongol”
CN,21,”Ningxia”
CN,22,”Beijing”
CN,23,”Shanghai”
CN,24,”Shanxi”
CN,25,”Shandong”
CN,26,”Shaanxi”
CN,28,”Tianjin”
CN,29,”Yunnan”
CN,30,”Guangdong”
CN,31,”Hainan”
CN,32,”Sichuan”
CN,33,”Chongqing”
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装geoip模块
  • 下载IP数据库
  • 修改nginx配置
  • GeoIP相关参数
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档