新方法
- 安装 nginx 模块 geoip2: https://github.com/leev/ngx_h...
- 下载 IP 识别数据源:https://www.maxmind.com/en/ac...,需要注册网站账号才有权限下载,下载的数据库选择
GeoLite2 City
和GeoLite2 Country
即可 - nginx 配置如下,
source
选项对应的是$remote_addr
, 表示解析的是用户IP,可以修改为其他变量
http {
...
geoip2 /etc/nginx/vendor/GeoLite2-Country.mmdb {
auto_reload 5m;
$geoip2_metadata_country_build metadata build_epoch;
$geoip2_data_country_code default=US source=$remote_addr country iso_code;
$geoip2_data_country_name country names en;
}
geoip2 /etc/nginx/vendor/GeoLite2-City.mmdb {
$geoip2_data_city_name default=London city names en;
}
fastcgi_param COUNTRY_CODE $geoip2_data_country_code;
fastcgi_param COUNTRY_NAME $geoip2_data_country_name;
fastcgi_param CITY_NAME $geoip2_data_city_name;
....
server {
listen 8081;
server_name www.siguoya.name;
location / {
if ($geoip2_data_country_code != 'CN'){
return 403;
}
default_type text/plain;
return 200 "$remote_addr $geoip2_data_country_code $geoip2_data_country_name $geoip2_data_city_name";
}
}
}
访问:http://www.siguoya.name:8081/
113.111.3.206 CN China Guangzhou
旧方法
IP数据库下载地址:
国家数据库:http://geolite.maxmind.com/do...
城市数据库:http://geolite.maxmind.com/do...
http {
geoip_country /path/to/GeoIP.dat;
geoip_city /path/to/GeoLiteCity.dat;
server{
listen 3592;
location / {
default_type text/plain;
if ($geoip_country_code != 'CN'){
return 403;
}
return 200 "$remote_addr $geoip_city_country_name $geoip_country_code $geoip_city";
}
}
}
访问:http://www.siguoya.name:3592/
119.32.216.122 China CN Guangzhou