
文章插圖
假如有一個(gè)客戶端請求經(jīng)過了nginx代理轉(zhuǎn)發(fā)以后發(fā)送給node.js服務(wù)器,如果我們想要獲取到客戶端的真實(shí)ip地址,而不是nginx服務(wù)器的地址的話應(yīng)該怎么做呢?
首先在nginx中配置一下被代理服務(wù)器接收到的header信息proxy_set_header用來配置被代理服務(wù)器接收到的header信息 。配置語法如下:
proxy_set_header field value;其中,field為要設(shè)置的變量名,value為變量的值 。
在這里我們將真實(shí)的客戶端ip設(shè)置為X-Real-IP,然后傳給被代理服務(wù)器,這樣被代理服務(wù)器就可以通過header信息來獲取到客戶端真實(shí)的ip了 。配置如下:
server {listen 80;server_nameyuanjingyan.com;if ( $host !~* "yuanjingyan.com" ) {return 404;}location / {proxy_pass http://ip:port;proxy_set_header X-Real-IP $remote_addr;}}然后在node.js中獲取客戶端真實(shí)ip在node.js中我們可以通過在nginx中配置的變量X-Real-IP來獲取客戶端真實(shí)ip,代碼如下:
var clientIP = context.req.headers['x-real-ip']; //客戶端ip,獲取的是經(jīng)過nginx代理后的真實(shí)請求ipif(!clientIP){clientIP=context.req.connection.remoteAddress; //客戶端ip,獲取的是沒有經(jīng)過nginx代理后的真實(shí)請求ip}其中要注意的是headers中的“x-real-ip”要寫成小寫的,不能寫成“X-Real-IP”,否則獲取不到數(shù)據(jù) 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時(shí)就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- 生活小常識,怎樣清洗水果才干凈?
- 獲取input輸入框的內(nèi)容 js獲取input輸入的值
- 網(wǎng)站域名證書獲取方法 萬網(wǎng)域名證書查詢
- 教你javascript實(shí)時(shí)獲取鼠標(biāo)位置 js獲取鼠標(biāo)點(diǎn)擊的位置
- jquery設(shè)置滾動條位置 獲取div高度的方法有哪些
- ip地址異常修復(fù)方法 wifi一直在獲取ip地址是怎么回事
- js操作文件的讀寫 json對象獲取key值
- 獲取管理員權(quán)限win10的步驟 win10提升管理員權(quán)限的方法
- 30本當(dāng)前很火的小說排行,烽火戲諸侯依然霸榜 熱小說排行榜
- 文件或目錄損壞且無法讀取方法 input上傳文件獲取內(nèi)容
