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 address | CIDR | unix:;
預設值
內容 httpserverlocation

定義已知會傳送正確替換位址的信任位址。如果指定特殊值 unix:,則將信任所有 UNIX 網域通訊端。信任位址也可以使用主機名稱指定 (1.13.1)。

從 1.3.0 和 1.2.1 版本開始支援 IPv6 位址。

語法 real_ip_header field | X-Real-IP | X-Forwarded-For | proxy_protocol;
預設值
real_ip_header X-Real-IP;
內容 httpserverlocation

定義請求標頭欄位,其值將用於取代客戶端位址。

也使用包含可選連接埠的請求標頭欄位值來取代客戶端連接埠 (1.11.0)。位址和連接埠應按照 RFC 3986 指定。

proxy_protocol 參數 (1.5.12) 將客戶端位址變更為來自 PROXY 協定標頭的位址。必須先在 listen 指令中設定 proxy_protocol 參數來啟用 PROXY 協定。

語法 real_ip_recursive on | off;
預設值
real_ip_recursive off;
內容 httpserverlocation

此指令出現在 1.3.0 和 1.2.1 版本中。

如果停用遞迴搜尋,則符合其中一個信任位址的原始客戶端位址將被 real_ip_header 指令定義的請求標頭欄位中傳送的最後一個位址取代。如果啟用遞迴搜尋,則符合其中一個信任位址的原始客戶端位址將被請求標頭欄位中傳送的最後一個非信任位址取代。

內嵌變數

$realip_remote_addr
保留原始客戶端位址 (1.9.7)
$realip_remote_port
保留原始客戶端連接埠 (1.11.0)