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

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

熱門標(biāo)簽:申請400電話價(jià)格多少 涪陵商都400電話開通辦理 廈門營銷外呼系統(tǒng)平臺(tái) 柳州市機(jī)器人外呼系統(tǒng)報(bào)價(jià) 安陽ai電銷機(jī)器人軟件 外呼系統(tǒng)的經(jīng)營范圍 外呼系統(tǒng)不彈窗 智能電話機(jī)器人坐席 云會(huì)外呼系統(tǒng)

問題

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

例如在某一臺(tái)服務(wù)器上,Tomcat的端口號(hào)為8080,Nginx的端口號(hào)為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í)的域名和端口號(hào)

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)簽:福州 巴中 蕪湖 孝感 晉城 南充 撫順 綏化

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Tomcat獲取Nginx反向代理的客戶端域名》,本文關(guān)鍵詞  Tomcat,獲取,Nginx,反向,代理,;如發(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)文章
  • 下面列出與本文章《Tomcat獲取Nginx反向代理的客戶端域名》相關(guān)的同類信息!
  • 本頁收集關(guān)于Tomcat獲取Nginx反向代理的客戶端域名的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章