模块 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 file;
默认:
语境: stream

指定用于根据客户端 IP 地址确定国家/地区的数据库。使用此数据库时,以下变量可用:

$geoip_country_code
两个字母的国家/地区代码,例如“ RU”、“ US”。
$geoip_country_code3
三字母国家代码,例如“ RUS”、“ USA”。
$geoip_country_name
国家名称,例如“ Russian Federation”、“ United States”。

句法: geoip_city file;
默认:
语境: 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 file;
默认:
语境: stream

指定用于根据客户端 IP 地址确定组织的数据库。使用此数据库时,以下变量可用:

$geoip_org
组织名称,例如“墨尔本大学”。