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 指令

语 法:geoip_country file;
默认值:—
上下文:http

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

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

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

  • $geoip_country_name 国家名称,例如 “俄罗斯联邦”、“美国”。

geoip_city 指令

语 法:geoip_city file;
默认值:—
上下文: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 国家名称,例如 “俄罗斯联邦”、“美国”。

  • $geoip_dma_code 根据 Google AdWords API 中的地理定位,美国的 DMA 区域代码(也称为“地铁代码”)。

  • $geoip_latitude 纬度

  • $geoip_longitude 经度

  • $geoip_region 双符号国家/地区代码(地区、领土、州、省、联邦土地等),例如 “48”、“DC”。

  • $geoip_region_name 国家/地区名称(地区、领土、州、省、联邦土地等),例如 “莫斯科市”、“哥伦比亚特区”。

  • $geoip_city 城市名称,例如 “莫斯科”、“华盛顿”。

  • $geoip_postal_code 邮政编码。

geoip_org 指令

语 法:geoip_org file;
默认值:—
上下文:http

该指令出现在 1.0.3 版中。

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

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

geoip_proxy 指令

语 法:geoip_proxy address | CIDR;
默认值:—
上下文:http

该指令出现在 1.3.0 和 1.2.1 版本中。

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

geoip_proxy_recursive 指令

语 法:geoip_proxy_recursive on | off;
默认值:geoip_proxy_recursive off;
上下文:http

该指令出现在 1.3.0 和 1.2.1 版本中。

如果递归搜索被禁用,则将使用 “X-Forwarded-For” 中发送的最后一个地址,而不是匹配受信任地址之一的原始客户端地址。如果启用了递归搜索,则将使用 “X-Forwarded-For” 中发送的最后一个非信任地址,而不是匹配受信任地址之一的原始客户端地址。

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号