1. 程式人生 > >Nginx學習筆記——geoip模組(地域資訊)

Nginx學習筆記——geoip模組(地域資訊)

概述

基於IP地址匹配MaxMind GeoIP二進位制檔案,讀取IP所在地域資訊。

安裝模組

yum install nginx-module-geoip

使用場景

(1)區別國內外作HTTP的訪問規則(國內訪問國內伺服器,國外訪問國外伺服器) (2)區別國內城市地域作HTTP訪問規則(可作就近訪問規則)

測試

(1)首先需要在/etc/nginx/nginx.conf中載入GeoIp模組

load_module "modules/ngx_http_geoip_module.so";
load_module "modules/ngx_stream_geoip_module.so";
#.....

(2)下載兩個資料檔案GeoIp.dat和GeoLiteCity.dat

http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz 
http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz 

Tip:沒翻牆可以使用迅雷下載。 (3)解壓放入指定位置,我放在/etc/nginx/geoip/下,使用gzip -d XXX.gz解壓。 (4)修改配置檔案,/etc/nginx/conf.d/test_geo.conf

geoip_country /etc/nginx/geoip/GeoIP.dat;
geoip_city /etc/nginx/geoip/GeoLiteCity.dat;

server {

    location / {
        if ($geoip_country_code != CN){
            return 403;
        }
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /myip {
        default_type text/plain;
        return 200 "$remote_addr $geoip_country_name $geoip_country_code $geoip_city";
    }

上面是需要改動的地方: (1)載入GeoIP資料檔案 (2)增加訪問規則

用處:基於地域不同或國家不同,可進行訪問控制,進行proxy_pass等。