模块 ngx_stream_geoip_module
Example Configuration Directives geoip_country geoip_city geoip_org |
该模块 (1.11.3) 使用预编译的MaxMindngx_stream_geoip_module
数据库创建变量,其值取决于客户端 IP 地址
。
使用支持 IPv6 的数据库时,IPv4 地址将作为 IPv4 映射的 IPv6 地址进行查找。
该模块不是默认构建的,需要通过
--with-stream_geoip_module
配置参数启用。
该模块需要 MaxMind GeoIP库。
配置示例
stream { geoip_country GeoIP.dat; geoip_city GeoLiteCity.dat; map $geoip_city_continent_code $nearest_server { default example.com; EU eu.example.com; NA na.example.com; AS as.example.com; } ... }
指令
句法: |
geoip_country |
---|---|
默认: | — |
语境: |
stream |
指定用于根据客户端 IP 地址确定国家/地区的数据库。使用此数据库时,以下变量可用:
$geoip_country_code
-
两个字母的国家/地区代码,例如“
RU
”、“US
”。 $geoip_country_code3
-
三字母国家代码,例如“
RUS
”、“USA
”。 $geoip_country_name
-
国家名称,例如“
Russian Federation
”、“United States
”。
句法: |
geoip_city |
---|---|
默认: | — |
语境: |
stream |
指定用于根据客户端 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
- 根据 Google AdWords API 中的 地理定位,美国的 DMA 区域代码(也称为“都市代码”)。
$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 |
---|---|
默认: | — |
语境: |
stream |
指定用于根据客户端 IP 地址确定组织的数据库。使用此数据库时,以下变量可用:
$geoip_org
- 组织名称,例如“墨尔本大学”。