主頁(yè) > 知識(shí)庫(kù) > Nginx基礎(chǔ)學(xué)習(xí)之realip模塊的使用方法

Nginx基礎(chǔ)學(xué)習(xí)之realip模塊的使用方法

熱門標(biāo)簽:400電話辦理哪家好廠商 地圖標(biāo)注需要現(xiàn)場(chǎng)嗎 重慶營(yíng)銷外呼系統(tǒng)排名 工廠位置地圖標(biāo)注 企業(yè)400電話辦理哪正規(guī) 鶴壁電銷外呼系統(tǒng)怎么安裝 地圖標(biāo)注企業(yè)名稱侵權(quán)案件 繽客網(wǎng)注冊(cè)時(shí)地圖標(biāo)注出不來(lái) 網(wǎng)站上插入地圖標(biāo)注內(nèi)容

前言

nginx模塊分為兩種,官方和第三方,我們通過(guò)命令 nginx -V 查看 nginx安裝信息,可以看到 下面有關(guān) --with的nginx啟動(dòng)加載的模塊信息。

realip模塊

用途 :當(dāng)本機(jī) Nginx 處于反向代理后端時(shí)可以獲取到用戶的 真實(shí)IP地址 。

使用 : realip 功能需要 Nginx 添加 ngx_http_realip_module 模塊,默認(rèn)情況下是不被編譯,如果需要添加,請(qǐng)?jiān)诰幾g時(shí)添加 --with-http_realip_module 選項(xiàng)開啟它。

realip 作用域

set_real_ip_from 、 real_ip_header 和 real_ip_recursive 都可以用于 http 、 server 、 location 區(qū)域配置。

realip 部分參數(shù)解釋

  • set_real_ip_from :設(shè)置反向代理服務(wù)器,即信任服務(wù)器IP
  • real_ip_header X-Forwarded-For :用戶真實(shí)IP存在 X-Forwarded-For 請(qǐng)求頭中
  • real_ip_recursive :
    • off :會(huì)將 real_ip_header 指定的HTTP頭中的最后一個(gè)IP作為真實(shí)IP
    • on :會(huì)將 real_ip_header 指定的HTTP頭中的最后一個(gè)不是信任服務(wù)器的IP當(dāng)成真實(shí)IP

http 頭中的 X-Forwarded-For、X-Real-IP、Remote Address 解釋

X-Forwarded-For 位于HTTP請(qǐng)求頭,是HTTP的擴(kuò)展 header ,用于表示HTTP請(qǐng)求端 真實(shí)IP 。

格式如下:

X-Forwarded-For: client, proxy1, proxy2

Nginx 代理一般配置為:

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

解釋:

  • X-Forwarded-For :Nginx追加上去的,但前面部分來(lái)源于nginx收到的請(qǐng)求頭,這部分內(nèi)容不是 很可信 。符合IP格式的才可以使用,否則容易引發(fā) XSS 或者 SQL注入漏洞 。
  • Remote Address :HTTP協(xié)議沒(méi)有IP的概念, Remote Address 來(lái)自于TCP連接,表示與服務(wù)端建立TCP連接的設(shè)備IP,因此,Remote Address無(wú)法偽造。
  • X-Real-IP :HTTP代理用于表示與它產(chǎn)生TCP連接的設(shè)備IP,可能是其他代理,也可能是真正的請(qǐng)求端。

realip 功能舉例說(shuō)明

下面是一個(gè)簡(jiǎn)單的架構(gòu)圖:

假設(shè)一:

1、如果 Nginx 沒(méi)有使用 realip模塊 ,第二臺(tái) Nginx中 X-Forwarded-For 請(qǐng)求是 1.1.1.1,但 remote_addr 地址是 2.2.2.2,這時(shí)應(yīng)用服務(wù)可以通過(guò) X-Forwarded-For 字段獲取用戶真實(shí)IP。不過(guò)這里有點(diǎn)風(fēng)險(xiǎn),如果中間多幾層反向代理服務(wù),就無(wú)法獲取唯一一個(gè)用戶真實(shí)IP。

2、如果 Nginx 使用 realip模塊 ,并如下設(shè)置;Nginx 會(huì)取 X-Forwarded-For 最后一個(gè)IP也就是 2.2.2.2 作為真實(shí)IP。最后應(yīng)用服務(wù)拿到的地址也是 2.2.2.2,但事實(shí)這不是用戶IP。

set_real_ip_from 2.2.2.2;
set_real_ip_from 2.2.2.3; 
real_ip_header X-Forwarded-For; 
real_ip_recursive off;

3、如果 Nginx 使用 realip模塊 ,并如下設(shè)置;由于 2.2.2.2 是信任服務(wù)器IP,Nginx 會(huì)繼續(xù)往前查找,發(fā)現(xiàn) 1.1.1.1 不是信任服務(wù)器IP,就認(rèn)為是真實(shí)IP。但事實(shí) 1.1.1.1 也就是用戶IP。最后應(yīng)用服務(wù)也拿到唯一的用戶真實(shí)IP。

set_real_ip_from 2.2.2.2;
set_real_ip_from 2.2.2.3; 
real_ip_header X-Forwarded-For; 
real_ip_recursive on;

總結(jié)

到此這篇關(guān)于Nginx基礎(chǔ)學(xué)習(xí)之realip模塊的使用方法就介紹到這了,更多相關(guān)Nginx realip模塊使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:常州 克拉瑪依 鹽城 棗莊 日照 東莞 96 渭南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Nginx基礎(chǔ)學(xué)習(xí)之realip模塊的使用方法》,本文關(guān)鍵詞  Nginx,基礎(chǔ),學(xué),習(xí)之,realip,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Nginx基礎(chǔ)學(xué)習(xí)之realip模塊的使用方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Nginx基礎(chǔ)學(xué)習(xí)之realip模塊的使用方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章