Ngix geoip_module 读取IP地域信息
基于IP地址匹配MaxMind GeoIP 二进制文件,读取IP所在地域信息。
初始安装并没有这个模块,需要自己安装。
使用场景
-
区别国内外IP作为HTTP访问规则
-
区别国内城市地域作为HTTP访问规则
配置
加载模块
在nginx.conf中加入:
load_module "modules/ngx_http_geoip_module.so"
load_module "modules/ngx_stream_geoip_module.so"
下载MaxMind的ip地域信息文件。
server内容如下:
geoip_country /etc/nginx/geoip/GeoIP.dat;
geoip_city /etc/nginx/geoip/GeoLiteCity.dat;
server {
listen 80;
server_name localhost;
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";
}
}
/myip
配置返回了访问者的IP、国家名、国家码、城市。便于访问自己的出口IP。
/
配置了非中国IP的HTTP访问限制