佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > Tomcat獲取Nginx反向代理的客戶端域名

Tomcat獲取Nginx反向代理的客戶端域名

熱門標(biāo)簽:阿里云 百度競價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 美圖手機(jī) 檢查注冊表項(xiàng) 網(wǎng)站建設(shè) 硅谷的囚徒呼叫中心 使用U盤裝系統(tǒng) 智能手機(jī)

問題

Nginx反向代理之后,Tomcat應(yīng)用通過request.getHeader("host")取到的是Nginx的host,并非客戶端瀏覽器地址欄上的真實(shí)域名。

例如在某一臺(tái)服務(wù)器上,Tomcat的端口號為8080,Nginx的端口號為80,Nginx反向代理8080端口。

server {
  listen 80;
  location / {
    proxy_pass http://127.0.0.1:8080;
  }
}

在另一臺(tái)機(jī)器上用瀏覽器打開http://haha/test訪問Tomcat下的應(yīng)用,獲取客戶端域名。

System.out.println(request.getHeader("host"));

結(jié)果是:

localhost:8080

問題產(chǎn)生的原因

Nginx的反向代理實(shí)際上是客戶端和真是的應(yīng)用服務(wù)器之間的一個(gè)橋梁,客戶端(一般是瀏覽器)訪問Nginx服務(wù)器,Nginx再去訪問Web應(yīng)用服務(wù)器。對于Web應(yīng)用來說,這次HTTP請求的客戶端是Nginx而非真實(shí)的客戶端瀏覽器,如果不做特殊處理的話,Web應(yīng)用會(huì)把Nginx當(dāng)做請求的客戶端,獲取到的客戶端信息就是Nginx的一些信息。

問題解決

Nginx配置HTTP Header。Host包含客戶端真實(shí)的域名和端口號

proxy_set_header Host $http_host;

Tomcat從Nginx傳遞過來的HTTP Header中獲取客戶端信息。

<Valve className="org.apache.catalina.valves.RemoteIpValve" />

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

標(biāo)簽:煙臺(tái) 湖北 懷化 黃山 通遼 湘潭 山南 賀州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Tomcat獲取Nginx反向代理的客戶端域名》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    松江区| 英吉沙县| 甘洛县| 象山县| 和顺县| 娱乐| 沙雅县| 当阳市| 肥东县| 桐梓县| 濮阳市| 日喀则市| 疏勒县| 淮北市| 松原市| 永定县| 柯坪县| 玉门市| 涞水县| 龙泉市| 廉江市| 乐昌市| 台湾省| 客服| 仁布县| 麦盖提县| 大石桥市| 温泉县| 临洮县| 深水埗区| 巴东县| 潞西市| 镇宁| 南郑县| 景德镇市| 如东县| 麻阳| 新源县| 鸡西市| 兴国县| 巴南区|