通過Nginx獲取使用者ip

2021-09-28 14:43:49 字數 1031 閱讀 6926

x-forwarded-for,x-real-ip

x-forwarded-for的格式:

x-forwarded-for: client, proxy1, proxy2

說明:client指使用者機的ip,或請求**的最初的機器的ip

proxy1指一級**

proxy2指二級**

例如:x-forwarded-for:192.168.247.1, 192.168.247.131, 192.168.247.132

x-real-ip的格式:

x-real-ip:10.119.137.3

只有乙個,指請求到nginx的機器的ip

在一般情況下,就是沒有使用**的使用者的ip

異同:

x-forwarded-for後面的ip可以有乙個或多個

x-real-ip只有乙個,並且一定和x-forwarded-for的最後乙個ip相同

對於 web 應用來說,x-forwarded-for 和 x-real-ip 就是兩個普通的請求頭,自然就不做任何處理原樣輸出了。這說明,對於直連部署方式,除了從 tcp 連線中得到的 remote address 之外,請求頭中攜帶的 ip 資訊都不能信。

但是可以通過nginx將remote address設定為x-real-ip,並將其設定為x-forwarded-for的最後乙個,而這些內容將是完全可信的.

注意:x-forwarded-for 最後一節是 nginx 追加上去的,但之前部分都來自於 nginx 收到的請求頭,這部分使用者輸入內容完全不可信,不可信,不可信.

proxy_set_header   x-forwarded-for  $x_forwarded_for;

proxy_set_header x-real-ip $remote_addr;

這樣後端應用就可以從請求頭中的x-real-ip獲取需要的ip

nginx獲取使用者真實ip

我們有的介面牽扯到使用者資訊的變更,這些介面只允許接入方來調我們,所以我們在nginx上,關於這些介面都個ip白名單,裡面配上接入方的出口ip。下面是我們nginx的access裡的日誌。nginx取的我們這個 remote addr 當做真實ip了,而事實上,http x forwarded fo...

nginx獲取使用者真實ip

我們訪問網際網路上的服務時,大多數時,客戶端並不是直接訪問到服務端的,而是客戶端首先請求到反向 反向 再 到服務端實現服務訪問,通過反向 實現路由 負載均衡等策略。這樣在服務端拿到的客戶端ip將是反向 ip,而不是真實客戶端ip,因此需要想辦法來獲取到真實客戶端ip 客戶端訪問服務端的資料流走向 c...

CDN下nginx獲取使用者真實IP位址

隨著nginx的迅速崛起,越來越多公司將apache更換成nginx.同時也越來越多人使用nginx作為負載均衡,並且 前面可能還加上了cdn加速,但是隨之也遇到乙個問題 nginx如何獲取使用者的真實ip位址 例項環境 使用者ip 120.22.11.11 cdn前端 61.22.22.22 cd...