ngx_http_geoip_module

ngx_http_geoip_module 模块(0.8.6+)使用预编译的 MaxMind 数据库,其创建带值的变量依赖客户端 IP 地址。

当使用支持 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

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

  • $geoip_country_code

    双字母国家代码,例如 RUUS

  • $geoip_country_code3

    三个字母的国家代码,例如 RUSUSA

  • $geoip_country_name

    国家名称,例如 Russian FederationUnited States

geoip_city

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

  • $geoip_area_code

    电话区号(仅限美国)

    由于相应的数据库字段已弃用,因此此变量可能包含过时的信息

  • $geoip_city_continent_code

    双字母的大陆码,例如 EUNA

  • $geoip_city_country_code

    双字母国家代码,例如 RUUS

  • $geoip_city_country_code3

    三个字母的国家代码,例如 RUSUSA

  • $geoip_city_country_name

    国家名称,例如 Russian FederationUnited States

  • $geoip_dma_code

    美国的 DMA 地区代码(也称为城市代码),根据 Google AdWords API 中的地理位置定位

  • $geoip_latitude

    纬度

  • $geoip_longitude

    经度

  • $geoip_region

    双符号国家地区代码(地区、领土、州、省、联邦土地等),例如 48DC

  • $geoip_region_name

    国家地区名称(地区,领土,州,省,联邦土地等),例如 Moscow CityDistrict of Columbia

  • $geoip_city

    城市名称,例如 MoscowWashington

  • $geoip_postal_code

    邮政编码

geoip_org

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

  • $geoip_org

    组织名称,例如 The University of Melbourne

geoip_proxy

定义可信地址。当请求来自可信地址时,将使用来自 X-Forwarded-For 请求头字段的地址。

geoip_proxy_recursive

如果递归搜索被禁用,那么将使用在 X-Forwarded-For 中发送的最后一个地址,而不是匹配其中一个可信地址的原始客户端地址。如果启用递归搜索,则将使用在 X-Forwarded-For 中发送的最后一个不可信地址,而不是匹配其中一个可信地址的原始客户端地址。

原文档

http://nginx.org/en/docs/http/ngx_http_geoip_module.html

最后更新于