geoip2_proxy_recursive
当在代理后使用时,'geoip2_proxy_recursive' 指令启用对 GeoIP2 数据的递归查找。
NGINX GeoIP2 module
·
http
语法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 头,否则该指令将无法准确生效。
⚠
启用此指令时,您可能需要采取额外的安全措施,以防止不受信任的代理篡改请求头。