geoip2_proxy_recursive

当在代理后使用时,'geoip2_proxy_recursive' 指令启用对 GeoIP2 数据的递归查找。

语法geoip2_proxy_recursive on | off;
默认值off
上下文http
参数flag

说明

'geoip2_proxy_recursive' 指令在 NGINX GeoIP2 模块中用于配置在请求被代理时 NGINX 是否应对 GeoIP 数据执行递归查找。该功能在客户端 IP 地址通过多层代理转发的环境中非常重要,因为它可以检索与原始客户端 IP 对应的准确地理位置信息,而不是最后一个代理的 IP。当启用时,NGINX 会评估 X-Forwarded-For HTTP 头,有效地追溯到最初客户端的 IP 地址。

此指令在 NGINX 配置中以标志形式设置,可接受两种状态:on(启用)或 off(禁用)。如果设置为 on,NGINX 将通过 X-Forwarded-For 头中找到的转发 IP 列表递归解析 IP 地址,确保地理查找基于正确的 IP 地址。

为正确使用此指令,服务器必须配置为信任位于请求路径中的特定代理所发送的头。代理配置不当可能导致错误读数或指令被误用,因为不受信任的代理可能发送不正确或被篡改的头。开发者应确保清楚其架构中哪些代理是可信的,以保障准确的地理位置数据检索。

配置示例

http {
    geoip2 /etc/maxmind-country.mmdb {
        auto_reload 5m;
        $geoip2_data_country_code default=US source=$remote_addr country iso_code;
    }

    geoip2_proxy_recursive on;
}

确保所有上游代理都正确设置 X-Forwarded-For 头,否则该指令将无法准确生效。

启用此指令时,您可能需要采取额外的安全措施,以防止不受信任的代理篡改请求头。

← 返回所有指令