2016-12-15 98 views
1

我有一臺NGINX服務器充當其他幾臺服務器的負載平衡器。因爲我需要訪問該用戶的IP地址,添加以下行到我的nginx的配置:NGINX沒有設置X-Forwarded-For正確

proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

然後,在後端服務器,我只是在X - 轉發,對於頭使用第一個IP地址。然而,每隔幾分鐘(每2K次請求一次),我得到unknown, xxx.xxx.xxx.xxx作爲頭的值,其中xxx.xxx.xxx.xxx是一個IP地址(每次不同)。什麼可能是這個問題的根源?

回答

1

the documentation,該$proxy_add_x_forwarded_for變量包括:

的「X-轉發,對於」客戶端請求頭字段與 $ REMOTE_ADDR變量附加到它,用逗號分隔。

如果客戶端請求 頭中不存在「X-Forwarded-For」字段,則$ proxy_add_x_forwarded_for變量等於 $ remote_addr變量。

由此我們可以得出這樣的結論nginx接收到來自某些遠程客戶機(可能是一個轉發代理)的請求與請求頭:

X-Forwarded-For: unknown