FOX 站最近有很多菲律宾的网友注册,占用了大量资源,所以为 FOX 站配置了 Geoip 屏蔽,以下为具体代码。


因为之前是通过 apt-get 方式安装的 Nginx,默认没有带 geoip module,需要安装:

apt-get install nginx-module-geoip

20170630124718.png

然后编辑 /etc/nginx/nginx.conf

vim /etc/nginx/nginx.conf

i 进入编辑模式,在最上方新增一行:

load_module modules/ngx_http_geoip_module.so;

http{ 下方新增以下几行

    geoip_country /usr/share/GeoIP/GeoIP.dat;
    map $geoip_country_code $allowed_country {
        default yes;
        PH no;
        MY no;
    }
    // 默认允许访问,但是菲律宾、马来西亚不允许访问

或者

    geoip_country /usr/share/GeoIP/GeoIP.dat;
    map $geoip_country_code $allowed_country {
        default no;
        CN yes;
        HK yes;
        TW yes;
        MO yes;
    }
    // 默认不允许访问,只允许大中华区访问

ESC 输入 :wq 退出编辑

20170630125004.png

接下来,安装 Geoip 数据库

apt-get install geoip-database libgeoip1 && mv /usr/share/GeoIP/GeoIP.dat /usr/share/GeoIP/GeoIP.dat_bak && cd /usr/share/GeoIP/ && wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz && gunzip GeoIP.dat.gz

编辑网站的 Nginx 配置文件

vim /etc/nginx/conf.d/xx.conf
// 按照你自己的配置文件打开

server { 之后,location{} 内部或者外部新增

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

重启 Nginx 即可

service nginx restart

  2017-06-30    返回顶部