Nginx

ngx_http_realip_module

ngx_http_realip_module模块

  • 示例配置

  • 指令

  • set_real_ip_from

  • real_ip_header

  • real_ip_recursive

  • 嵌入式变量

ngx_http_realip_module模块用于将客户端地址和可选端口更改为在指定的标题字段中发送的端口。

该模块不是默认生成的,它应该使用--with-http_realip_module配置参数启用。

示例配置

set_real_ip_from 192.168.1.0/24; set_real_ip_from 192.168.2.1; set_real_ip_from 2001:0db8::/32; real_ip_header X-Forwarded-For; real_ip_recursive on;

指令

句法:set_real_ip_from地址| CIDR | UNIX :;
默认:
语境:http,服务器,位置

定义已知可发送正确替换地址的可信地址。如果unix:指定了特殊值,则所有UNIX域套接字都将被信任。可信地址也可以使用主机名(1.13.1)来指定。

从版本1.3.0和1.2.1开始支持IPv6地址。

句法:real_ip_header字段| X-Real-IP | X-Forwarded-For | proxy_protocol;
默认:real_ip_header X-Real-IP;
语境:http,服务器,位置

定义其值将用于替换客户端地址的请求标头字段。

包含可选端口的请求头字段值也用于替换客户端端口(1.11.0)。地址和端口应根据RFC 3986进行规定。

proxy_protocol参数(1.5.12)更改客户端地址来从代理协议报头的一个。通过proxy_protocol在listen指令中设置参数,必须先启用PROXY协议。

句法:real_ip_recursive 开启|关闭;
默认:real_ip_recursive关闭;
语境:http,服务器,位置

如果禁用递归搜索,则与由real_ip_header伪指令定义的请求标头字段中发送的最后一个地址替换与其中一个可信地址匹配的原始客户端地址。如果启用递归搜索,则与请求标头字段中发送的最后一个不可信地址替换与其中一个可信地址匹配的原始客户端地址。

嵌入式变量

$realip_remote_addr保留原始客户端地址(1.9.7)$realip_remote_port保留原始客户端端口(1.11.0)