HttpGeoIP
This module creates ngx_http_geoip_module variables based on the IP-address of the client matched against the MaxMind GeoIP binary files. This module appeared in nginx version 0.8.6.
本模块ngx_http_geoip_module的变量基于IP地址匹配MaxMind GeoIP 二进制文件. 这个模块开始出现在nginx0.8.6。
Precondition 首先
This module needs the geo databases and the library to read the database.
模块必需有geo数据库和读取数据库类
#下载免费的geo_city数据库
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
#下载免费的geo_coundty数据库
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
#在debian中安装libgeoip:
sudo apt-get install libgeoip-dev
#其它系统,你可以下载并编译一个源文件
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
在centos可以用yum安装:
yum install geoip
编译
./configure --with-http_geoip_module
例如
http {
geoip_country GeoIP.dat;
geoip_city GeoLiteCity.dat;
...
指令
geoip_country
syntax:*geoip_country path/to/db.dat;*
default: none
context:*http*
The directive indicates the path to the .dat file used for determining the visitor's country from the IP-address of the client. When set the module makes available the following variables:
dat文件用于判断访问者IP中的国家。当前模块 下可用的变量 :
- $geoip_country_code; -国家名的前两个字母, 如, "RU", "US".
- $geoip_country_code3; - 国家名的前三个字母, 如, "RUS", "USA".
- $geoip_country_name; -国家名称, 如, "Russian Federation", "United States".
If you only need the country's name, you can just set the geoip_country database(1.1M), while the geoip_city database is much bigger(43M) and all the databses will be cached in memory.
如果你只需要国家,你只需设置geoip_country数据库(1.1M), 但城市的ip数据库就比较大(43M)并且将加载到内存当缓存。
geoip_city
syntax:*geoip_city path/to/db.dat;*
default: none
context:*http*
The directive indicates the path to the .dat file used for determining countries, regions and cities from IP-address of the client. When set the module makes available the following variables:
dat文件用于判断访问者IP中的国家、省,城市。当前模块 下可用的变量:
- $geoip_city_country_code; -国家名的前两个字母, 如, "RU", "US".
- $geoip_city_country_code3; - 国家名的前三个字母, 如, "RUS", "USA".
- $geoip_city_country_name; -国家名称, 如, "Russian Federation", "United States".
- $geoip_region; - 省,州或区名 (province, region, state, province, federal land, and the like), 如, "Moscow City", "DC".
- $geoip_city; - 城市名称, 如, "Moscow", "Washington".
- $geoip_postal_code; - 邮政编号.
References
原文: https://wizardforcel.gitbooks.io/nginx-doc/content/Text/4.6_geoip.html