日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Nginx >内容正文

Nginx

Nginx 反向代理时获取用户的真实 IP

發(fā)布時(shí)間:2024/4/13 Nginx 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx 反向代理时获取用户的真实 IP 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在平時(shí)我們開發(fā)后端程序的過程中,應(yīng)該多多少少都會(huì)碰到記錄客戶端 IP 的場(chǎng)景,例如我之前寫過的 APP 用戶的一個(gè)審計(jì)功能,就需要獲取用戶的 IP 地址;還有廣告系統(tǒng)里面,也是需要獲取用戶的 IP 地址,有時(shí)這個(gè) IP 地址會(huì)被用來標(biāo)識(shí)用戶的,因此需要比較準(zhǔn)確得獲取到用戶的地址。當(dāng)然,在開始本文的內(nèi)容之前還是有必要強(qiáng)調(diào)一下我們現(xiàn)在的網(wǎng)絡(luò)大環(huán)境的,在使用 IP 的時(shí)候,我們一定要記住有兩個(gè)東西很關(guān)鍵,一個(gè)是網(wǎng)關(guān),一個(gè)是代理。

網(wǎng)關(guān)其實(shí)好理解,說簡(jiǎn)單一些的就路由器吧,因?yàn)?IPv4 的地址空間是有限的,所以就有了局域網(wǎng)共用一個(gè)公網(wǎng) IP 的事實(shí)。這在一個(gè)集體里面很容易出現(xiàn),例如家庭、學(xué)校,如果我們不加分辨得直接就使用 IP 來記錄或者屏蔽,那么很容易出問題,如果將這個(gè)問題再擴(kuò)大化一點(diǎn),那就是移動(dòng)端,因?yàn)槲覀冎酪苿?dòng)端都是通過連接信號(hào)塔進(jìn)行數(shù)據(jù)通信的,那么對(duì)于一個(gè)范圍內(nèi)的同一運(yùn)營(yíng)商來說,IP 地址就很可能是一樣的,這是移動(dòng)開發(fā)中一個(gè)很關(guān)鍵的點(diǎn);還有就是代理,很多公司對(duì)于網(wǎng)絡(luò)都是封鎖得很嚴(yán)厲的,所以所有的對(duì)外流量都通過一個(gè)代理交流,這也就導(dǎo)致了很多情況下都是同一個(gè)代理出來的都是一個(gè) IP,這也是一個(gè)非常重要的問題,很容易一棍子打死一船人。

OK,閑話扯完了,回到主題,在后端程序中,一般客戶端/前端的流量都不會(huì)直接就打到后端的應(yīng)用上,正常最少都會(huì)加一層反向代理,稍復(fù)雜一些的還會(huì)有負(fù)載均衡啥的,這也給我們提取客戶端 IP 帶來了很大的麻煩,所以我這里就以 Nginx 為例,說說如何更好得獲取正確的 IP 值。

下面下來一段我用了好多年的 Nginx 配置,夸張點(diǎn)說就祖?zhèn)鞯陌?#xff1a;

這里會(huì)出現(xiàn)了好幾個(gè)和 IP 有關(guān)的字段,這也是獲取 IP 的關(guān)鍵,對(duì)于這些字段如果我們細(xì)致得了解了它的來源和原理之后,那么獲取相對(duì)準(zhǔn)確的 IP 也就沒那么困難了,下面就一一進(jìn)行介紹:

Remote Addr

remote_addr 這個(gè)字段不是 http 里面的概念,其實(shí)是 tcp 的概念,表示的是當(dāng)前連接的對(duì)端的地址,也就是說:

  • 如果在瀏覽器和 Nginx 之間不存在其他代理,那么這個(gè)字段就是真實(shí)的 IP
  • 但是,一旦瀏覽器和 Nginx 之間存在代理,那么這個(gè)字段的值就是最后一個(gè)代理的地址

X-Real-IP

正如配置中所示,HTTP 中其實(shí)不存在這個(gè) Header,但是在 Nginx 中習(xí)慣于用來標(biāo)識(shí)用戶的真實(shí)地址,至于是否真的是客戶端的地址,看前面的 remote_addr 的解釋我們就清楚了。

X-Forwarded-For

這個(gè)就有意思了,X-Forwarded-For 表示在客戶端訪問 Nginx 的過程中如果需要經(jīng)過 HTTP 代理或者負(fù)載均衡服務(wù)器,可以被用來獲取最初發(fā)起請(qǐng)求的客戶端的 IP 地址,這個(gè)消息首部成為事實(shí)上的標(biāo)準(zhǔn)。怎么說,其實(shí)就是一個(gè) HTTP 請(qǐng)求從瀏覽器發(fā)出,每經(jīng)過一個(gè) HTTP 代理或者負(fù)載均衡,都會(huì)在這個(gè) Header 里面添加一條記錄(當(dāng)然,這是規(guī)定,你不遵守我也沒辦法),所以對(duì)于一個(gè)請(qǐng)求來說,X-Forwarded-For Header 的值列表里面的第一個(gè)值應(yīng)該就是客戶端的地址,及時(shí)經(jīng)過了 N 多的代理和負(fù)載均衡。

但是,這畢竟不是真正的標(biāo)準(zhǔn),所以我們不能期望 100% 一定有這個(gè),但是根據(jù)我的經(jīng)驗(yàn),對(duì)于一些比較成熟的反向代理軟件 例如 Nginx/Squid 都是有的,所以大多數(shù)情況下都可以通過這個(gè)字段獲取到真實(shí)值。

X-Forwarded-Host

好吧,這個(gè) Header 是亂入的,它和客戶端的 IP 沒啥關(guān)系,它其實(shí)是標(biāo)識(shí)客戶端發(fā)起請(qǐng)求時(shí)的 Host 的地址,我們可以通過這個(gè) Header 來獲取客戶端是訪問的哪個(gè) Host 進(jìn)來的。

結(jié)論

所以通過上面的介紹,我們知道,其實(shí)就只有兩個(gè)東西,分別是 remote_addr 和 X-Forwarded-For,如果中間存在不可控的代理,那么我們應(yīng)該優(yōu)先通過 X-Forwarded-For 的第一個(gè)值來獲取客戶端真實(shí) IP;如果中間的代理都是可控的,那么我們優(yōu)先通過 remote_addr 來獲取客戶端真實(shí)的 IP,而且這個(gè) IP 是不可偽造的。

轉(zhuǎn)載于:https://www.cnblogs.com/makor/p/Nginx-fan-xiang-dai-li-shi-huo-qu-yong-hu-de-zhen-.html

總結(jié)

以上是生活随笔為你收集整理的Nginx 反向代理时获取用户的真实 IP的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜精品一区二区三区在线 | 亚洲天堂资源网 | 国模无码视频一区 | 免费精品视频在线观看 | 成人99| 男人天堂资源网 | 日韩在线观看一区二区 | 国产成人精品女人久久久 | 国产午夜麻豆影院在线观看 | 男人综合网 | 99热都是精品| 91色视频在线观看 | 日韩一级伦理片 | 噜噜噜色| 人妻无码一区二区三区久久 | av资源在线 | 亚洲国产成人精品久久 | 综合久久一区二区 | 欧美一级二级片 | 国产精品久久久久无码av色戒 | 中文字幕永久在线视频 | 国产成人影视 | 自拍偷自拍亚洲精品播放 | 极品美妇后花庭翘臀娇吟小说 | 亚洲a毛片 | 国产色黄 | 另类一区二区三区 | 操干网 | 欧美20p | 夜夜嗨av一区二区三区四区 | 精品女同一区 | 黄色欧美视频 | 椎名由奈av一区二区三区 | 在线观看9.1 | 日韩久久视频 | 一区二区精彩视频 | 男人把女人捅爽 | 探花国产精品一区二区 | 日本老妇高潮乱hd | 欧美寡妇性猛交ⅹxxx | 成人1区2区 | 风流老熟女一区二区三区 | 亚洲国产精品视频一区二区 | 国产高清精品一区二区三区 | 91精品人妻一区二区三区蜜桃欧美 | 在线视频亚洲欧美 | 我爱52av | 中文成人无字幕乱码精品区 | 国产精品无码专区av在线播放 | 美女网站免费观看视频 | 国产成年人视频网站 | 免费人成在线观看网站 | 九色在线播放 | 国产男人天堂 | 国产免费脚交足视频在线观看 | 黄色成人一级片 | 日韩一区二区视频在线 | 日韩久久久久久久久 | 熟女毛毛多熟妇人妻aⅴ在线毛片 | 91精品国产综合久久久蜜臀九色 | 国产精品系列在线 | 天天干天天插天天操 | 色噜噜在线播放 | 国产小视频免费在线观看 | 精品在线免费播放 | 99中文字幕| 视频一区二区免费 | 欧美怡春院 | 国产网红在线观看 | 精品国产aⅴ麻豆 | 精品无码一区二区三区蜜臀 | 欧美成人资源 | 91精品国产一区二区三区 | 日韩在线第三页 | 在线视频免费观看一区 | 精品乱码一区二区三四区视频 | 色吊丝一区二区 | 日本一区视频在线播放 | 91av视频在线 | 91日韩中文字幕 | 日韩高清不卡在线 | 看一级黄色大片 | 国产成人aⅴ | 男人的天堂视频网站 | 日韩成人高清视频 | 国产一卡二卡三卡四卡 | 黄色在线观看视频 | 色爱视频| 人人妻人人做人人爽 | 五月婷婷综合在线 | 亚洲精品中文字幕在线观看 | 奶妈的诱惑 | 99久久婷婷| 超碰一区| 色婷婷综合久久久久中文字幕 | 在线观看欧美视频 | 欧美人体做爰大胆视频 | 欧美乱做爰xxxⅹ久久久 | 老版水浒传83版免费播放 |