ngx_http_geoip_module 模块
| 示例配置 指令 geoip_country geoip_city geoip_org geoip_proxy geoip_proxy_recursive |
ngx_http_geoip_module 模块 (0.8.6+) 创建变量,其值取决于客户端 IP 地址,使用预编译的 MaxMind 数据库。
当使用支持 IPv6 的数据库时 (1.3.12, 1.2.7),IPv4 地址会被查找为 IPv4 映射的 IPv6 地址。
此模块默认不构建,应使用 --with-http_geoip_module 配置参数启用。
此模块需要 MaxMind GeoIP 库。
示例配置
http {
geoip_country GeoIP.dat;
geoip_city GeoLiteCity.dat;
geoip_proxy 192.168.100.0/24;
geoip_proxy 2001:0db8::/32;
geoip_proxy_recursive on;
...
指令
| 语法 |
geoip_country |
|---|---|
| 默认值 | — |
| 上下文 |
http |
指定用于根据客户端 IP 地址确定国家/地区的数据库。使用此数据库时,以下变量可用:
$geoip_country_code- 双字母国家/地区代码,例如,“
RU”,“US”。 $geoip_country_code3- 三字母国家/地区代码,例如,“
RUS”,“USA”。 $geoip_country_name- 国家/地区名称,例如,“
Russian Federation”,“United States”。
| 语法 |
geoip_city |
|---|---|
| 默认值 | — |
| 上下文 |
http |
指定用于根据客户端 IP 地址确定国家/地区、区域和城市的数据库。使用此数据库时,以下变量可用:
$geoip_area_code- 电话区号(仅限美国)。
此变量可能包含过时信息,因为相应的数据库字段已弃用。
-
$geoip_city_continent_code - 双字母大洲代码,例如,“
EU”,“NA”。 $geoip_city_country_code- 双字母国家/地区代码,例如,“
RU”,“US”。 $geoip_city_country_code3- 三字母国家/地区代码,例如,“
RUS”,“USA”。 $geoip_city_country_name- 国家/地区名称,例如,“
Russian Federation”,“United States”。 $geoip_dma_code- 美国的 DMA 区域代码(也称为“大都会区代码”),根据 Google AdWords API 中的地理位置定位。
$geoip_latitude- 纬度。
$geoip_longitude- 经度。
$geoip_region- 双符号国家/地区区域代码(地区、属地、州、省、联邦土地等),例如,“
48”,“DC”。 $geoip_region_name- 国家/地区区域名称(地区、属地、州、省、联邦土地等),例如,“
Moscow City”,“District of Columbia”。 $geoip_city- 城市名称,例如,“
Moscow”,“Washington”。 $geoip_postal_code- 邮政编码。
| 语法 |
geoip_org |
|---|---|
| 默认值 | — |
| 上下文 |
http |
此指令出现在 1.0.3 版本中。
指定用于根据客户端 IP 地址确定组织的数据库。使用此数据库时,以下变量可用:
$geoip_org- 组织名称,例如,“The University of Melbourne”。
| 语法 |
geoip_proxy |
|---|---|
| 默认值 | — |
| 上下文 |
http |
此指令出现在 1.3.0 和 1.2.1 版本中。
定义受信任的地址。当请求来自受信任的地址时,将使用“X-Forwarded-For”请求头字段中的地址。
| 语法 |
geoip_proxy_recursive |
|---|---|
| 默认值 |
geoip_proxy_recursive off; |
| 上下文 |
http |
此指令出现在 1.3.0 和 1.2.1 版本中。
如果禁用递归查找,则不使用与受信任地址之一匹配的原始客户端地址,而是使用“X-Forwarded-For”中发送的最后一个地址。如果启用递归查找,则不使用与受信任地址之一匹配的原始客户端地址,而是使用“X-Forwarded-For”中发送的最后一个非受信任地址。