Nginx學習筆記——geoip模組(地域資訊)
阿新 • • 發佈:2018-12-18
概述
基於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
等。