美文网首页Nginx
nginx配置GeoIP限制国外地址访问

nginx配置GeoIP限制国外地址访问

作者: langlyyy | 来源:发表于2021-10-19 18:29 被阅读0次

零、编译

如果要使用这个功能,需要在编译nginx的时候加上 --with-http_geoip_module 模块
由于我使用的是openrestry,下面这些是我部署的关键步骤:
1.下载openrestry

[root@ip--143 /data ]# wget https://openresty.org/download/openresty-1.19.9.1.tar.gz

2.解压编译

[root@ip--143 /data/git ]# tar -xzvf  openresty-1.19.9.1.tar.gz /data
[root@ip--143 /data/git ]# cd openresty-1.19.9.1
[root@ip--143 /data/git/openresty-1.19.9.1 ]# ./configure --prefix=/data/openresty-1.19.9.1 --with-pcre --with-stream --with-threads --with-file-aio --with-http_v2_module --with-http_ssl_module --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module  --with-ipv6 --with-http_sub_module --with-http_geoip_module
[root@ip--143 /data/git/openresty-1.19.9.1 ]# gmake && gmake install

一、获取geoip地址库的方法

方法1、通过链接下载geoip库
MAXMIND 提供 GeoIP 数据库文件,该数据库文件包含 IP 及所属地域。通过读取该数据库文件,Nginx 将获得地址 IP 地址的地域信息。
但是 Nginx 只能识别 .dat 数据文件,而现在(06/02/2021)官方已经不提供 .dat 格式的数据文件,只提供 .mmdb 和 CSV 格式的数据文件,如果需要dat格式的文件可以通过下面链接下载
geoipIP地址库下载地址: https://www.miyuru.lk/geoiplegacy

方法2、通过yum安装geoip库

root@langly:~# yum -y install geoip-devel
root@langly:~# ll /usr/share/GeoIP/GeoIP.dat
lrwxrwxrwx. 1 root root 17 Nov 11  2019 /usr/share/GeoIP/GeoIP.dat -> GeoIP-initial.dat

二、nginx配置

geoip_country /data/openresty-1.15.8.3/nginx/geoip/country.dat;  #路径、文件名为你存放GeoIP.dat的路径和文件名
map $geoip_country_code $allowed_country {
default no; #设定默认值yes 或 no,默认通过或者默认拒绝
CN yes; #国家 yes就是允许哪个国家访问
}
server
{
        listen 80;
        server_name xxx.com;
        access_log /data/logs/nginx/http-access.log detail;
        error_log  /data/logs/nginx/http-error.log;
       
       #403限制访问返回指定网页
        error_page 403 /permission.html;
        location /permission.html {
                root /data/openresty-1.15.8.3/nginx/geoip;
        }

        location / {
            if ($allowed_country = no) { # 添加判断,如果访问国家=no,就返回403
                    return 403;
            }
            root /data/openresty-1.15.8.3/nginx/geoip/;
            index index.html;
        }

}

相关文章

网友评论

    本文标题:nginx配置GeoIP限制国外地址访问

    本文链接:https://www.haomeiwen.com/subject/dhpaoltx.html