geoip_module模块
基于ip地址匹配MaxMind GeoIp 二进制文件,读取ip所在地域信息。
安装
# yum 安装nginx geoip模块
yum install nginx-module-geoip
# 下载geoIP 地域文件
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
使用场景
区别国内外作HTTP访问规则
区别国内城市地域作HTTP访问规则
例子:
# nginx.conf 加载第三方的模块
load_module "modules/ngx_http_geoip_module.so";
load_module "modules/ngx_stream_geoip_module.so";
...
# 之前下载的GeoIP地域文件地址
geoip_country /etc/nginx/geoip/GeoIP.dat;
geoip_city /etc/nginx/geoip/GeoLiteCity.dat;
server{
...
location / {
# 如果不是国内的服务器 就返回403
if ($geoip_country_code != CN) {
return 403;
}
root /usr/share/nginx/html;
index index.php index.html index.htm
}
# 获取当前访问的IP
location /myIp {
default_type text/plain;
return 200 "$remote_addr $geoip_country_name $geoip_country_code $geoip_city";
# 输出 1.198.216.102 China CN ZhengZhou
}
...
}
...
Last updated