Nginx

將真實 IP 地址從一個 nginx 實例傳遞到另一個實例並將其寫入日誌

  • December 8, 2020

將請求移動到我添加到呼叫中的內部 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地址。

引用自:https://serverfault.com/questions/1045394