Nginx
將真實 IP 地址從一個 nginx 實例傳遞到另一個實例並將其寫入日誌
將請求移動到我添加到呼叫中的內部 nginx 伺服器:
proxy_set_header X-Real-IP $remote_addr;
當我嘗試在日誌中列印此值時,內部 nginx 容器崩潰:
log_format verbose ' Real: $X-Real-IP ';
我究竟做錯了什麼?(我也嘗試在變數周圍使用“”,但沒有幫助。)
伺服器接收
X-Real-IP
作為 HTTP 請求中的標頭之一。Nginx 將每個請求標頭值作為變數提供。http 請求標頭值的變數名稱以
$http_
. 標頭名稱轉換為小寫,每個連字元替換為下劃線。例如
X-Real-IP
可用作$http_x_real_ip
有關詳細資訊,請參閱此文件。
可以使用
ngx_http_realip_module
使 nginx 使用標頭中的 IP 地址作為 nginx 內部各處的源 IP。它的配置如下:
set_real_ip_from 192.168.1.1 # IP address of the external nginx real_ip_header X-Real-IP;
通過使用該模組,無需定義自己的日誌格式,nginx在日誌文件等所有地方輸出真實的客戶端IP作為源IP地址。