Module ngx_stream_geoip_module

ngx_stream_geoip_module模块(1.11.3)使用预编译的MaxMind数据库创建变量,其值取决于客户端 IP 地址。

使用支持 IPv6 的数据库时,会将 IPv4 地址查找为 IPv4 映射的 IPv6 地址。

默认情况下未构建此模块,应使用--with-stream_geoip_module配置参数启用它。

Note

此模块需要MaxMind GeoIP库。

Example Configuration

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;
    }
   ...
}

Directives

Syntax:geoip_country file;
Default:
Context:stream

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

$geoip_country_code

  • 两个字母的国家/地区代码,例如“ RU”,“ US”。

$geoip_country_code3

  • 三个字母的国家/地区代码,例如“ RUS”,“ USA”。

$geoip_country_name

  • 国家/地区名称,例如“ Russian Federation”,“ United States”。

Syntax:geoip_city file;
Default:
Context:stream

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

$geoip_area_code

  • 电话区号(仅限美国)。

Note

由于不赞成使用相应的数据库字段,因此该变量可能包含过时的信息。

$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 中的geotargeting,美国的 DMA 区域代码(也称为“大都市代码”)。

$geoip_latitude

  • latitude.

$geoip_longitude

  • longitude.

$geoip_region

  • 两个符号的国家/地区代码(地区,地区,State,省,联邦土地等),例如“ 48”,“ DC”。

$geoip_region_name

  • 国家区域名称(区域,地区,State,省,联邦土地等),例如“ Moscow City”,“ District of Columbia”。

$geoip_city

  • 城市名称,例如“ Moscow”,“ Washington”。

$geoip_postal_code

  • postal code.

Syntax:geoip_org file;
Default:
Context:stream

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

$geoip_org

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