什么是反向代理?
我們經常聽說反向代理這個概念,既然有反向代理,那么就應該有正向代理,那什么是正向代理呢?如下圖所示,所謂的正向代理是指當用戶發起請求時無法直接訪問到某個網站(比如我們經常要訪問外網),需要經過一個中間服務器,用戶將請求發給中間服務器,中間服務器可以訪問用戶想要訪問的網站,中間服務器將用戶的請求轉發給想要訪問的網站,然后再將那個網站回應的結果再回傳給用戶,這就是正向代理,

然后,我們再來看下反向代理,如下圖所示,一般情況下,一個大型網站都是由多個服務器組成的,比如某個網站是由三個Tomcat服務器組成的集群對外提供服務,那么當用戶發送一個請求后,應該是由哪個Tomcat服務器對外提供服務呢?這就是nginx反向代理所要做的事情,nginx會幫我們自動找一個Tomcat服務器來處理我們的請求,用戶根本就不需要關心,

網站入口就是公網ip,公網ip就是你去注冊域名時的那個ip地址(一級域名所對應的),只有這一個,因此咱們只能通過這個公網ip(網站入口)進行反向代理,
注意,反向代理服務器決定哪臺服務器對外提供服務,而它是不對外提供服務的,它只不過是將請求進行轉發,
nginx實作反向代理
下面我就按照下圖所描述的來配置反向代理,

因為只是學習反向代理,所以這兒我就只使用了一臺虛擬機,而且最好這臺虛擬機安裝有JDK環境,并且還得提前將Tomcat服務器的壓縮包上傳上去,
我們現在要配置反向代理,應該至少要有兩個Tomcat服務器,所以要創建兩個Tomcat服務器實體,如下圖所示,

然后將這兩個Tomcat服務器的埠號給改一下,使每個Tomcat服務器運行在不同的埠上,我們先到tomcat8081的conf目錄下修改server.xml檔案,依次修改下面這三段配置中的port屬性的值,如下所示,
- 將port屬性的值由8005改為8006

- 將port屬性的值由8080改為8081

- 將port屬性的值由8009改為8010

接著進入tomcat8082的conf目錄下修改server.xml檔案,依次修改下面這三段配置中的port屬性的值,如下所示,
- 將port屬性的值由8005改為8007

- 將port屬性的值由8080改為8082

- 將port屬性的值由8009改為8011

緊接著我們便要在nginx服務器上配置下反向代理了,即在nginx.conf組態檔中添加如下的一段內配置,

從上圖中可以看到使用的域名為www.sina.com.cn和www.sohu.com,因此我們需要在hosts檔案中添加對應的映射關系,如下圖所示(大家根據自己虛擬機的實際ip地址來配置啊),

nginx的組態檔修改了之后,要想讓其生效,應該怎么辦呢?我們需要重啟服務或者是重新加載組態檔,使用的命令是./nginx -s reload,
為了區分出我們訪問的Tomcat服務器到底是屬于哪個,可以給每個Tomcat服務器的首頁加上一個標志,即修改(tomcat8081/tomcat8082)/webapps/ROOT目錄下的index.jsp頁面,tomcat8081這個Tomcat服務器的修改如下圖所示,可以看到在原來的資訊后面加上了---tomcat8081字樣,

tomcat8082這個Tomcat服務器的修改如下圖所示,可以看到在原來的資訊后面加上了---tomcat8082字樣,

最后,我們啟動兩個Tomcat服務器,先在瀏覽器地址欄輸入www.sina.com.cn并回車,可以看到我們訪問到了tomcat8081這個Tomcat服務器的首頁,

再訪問www.sohu.com,可以看到訪問到的是tomcat8082這個Tomcat服務器的首頁,這說明我們的反向代理配置的沒問題,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/218547.html
標籤:其他
