1. 程式人生 > >Nginx反向代理兩個tomcat服務器

Nginx反向代理兩個tomcat服務器

pan 技術 我們 nginx反向代理 bubuko strong tomcat服務器 地址 地方

技術分享圖片

第一步,在Linux上安裝兩個tomcat,修改好端口號後,啟動起來。

第二步,配置本地的DNS解析,即修改host文件:

技術分享圖片

第三步,配置Nginx配置文件

反向代理的配置虛擬主機配置差不多也要配置虛擬主機以攔截請求,但是響應的地址不再是本地的目錄,而是引用代理設置中的地址:

技術分享圖片

具體解釋:

先配置轉發請求的真正服務地址,即真正響應服務的tomcat的地址和端口,

用 upstream + 自定義tomcat服務器的名稱,然後裏面是 server + tomcat的ip+端口

即:

技術分享圖片

然後配置請求攔截的虛擬主機:

技術分享圖片

其中的 server_name 還是攔截的請求域名,而和原來配置虛擬主機不一樣的地方就是 location中,不再配置本地目錄作為相應,而是用 proxy_pass 關鍵字來配置請求轉發的服務器名稱,具體格式為: proxy_pass http:// + 服務器名稱

其中的服務器名稱就是我們在 upstream 中配置的 真正要提供服務的tomcat的 我們自定義的名稱,即 tomcatserver1

這樣,當前臺請求 虛擬主機的攔截地址 8080.itheima.com時,虛擬主機就會將請求轉發給真正的tomcat服務器 192.168.25.141:8080 來提供服務。

同理,再配置第二對請求的真正服務器 tomcatserver2 及 攔截請求的虛擬主機 server_name 8081.itheima.com

測試:

reload nginx的配置文件,然後訪問

技術分享圖片

技術分享圖片

這樣就實現反向代理即從表象上看,我們兩個請求都是請求的同一個ip地址同樣都是默認的80端口,但是服務器端實際上是用兩個不同的tomcat來響應的

因為我們前面在host中配置的是同一個ip,而且沒有配端口(後面的8080和8081後面都是點,即其是域名,非端口),所以看起來像是訪問的同一個服務器ip地址和端口。

技術分享圖片

這種情況下,Nginx實際上只做了請求的轉發:請求來時,將請求轉發給對應的tomcat,tomcat處理完響應回的數據再由Nginx轉發給請求者。

Nginx反向代理兩個tomcat服務器