同一個ip通過一個80端口部署多個網站的原理-虛擬主機技術本質解析

原文鏈接:https://blog.csdn.net/walkingmanc/article/details/49363869

           我們在應用服務器上部署web應用的時候,常常想要在一臺服務器上部署多個網站。這時候我們就可以通過虛擬主機技術來實現。

          任何web服務器都是支持虛擬主機技術的,要完全明白什麼是虛擬主機技術,我們要搞清楚下面的內容。

          首先就是多個域名可以解析到同一個ip地址。我們的虛擬主機技術就是利用這一點來實現的。一般情況下,我們標識一個網站是通過網站的ip和端口以及網站項目名稱來標識的。

          在測試環境下,你可以通過修改成不同的端口,或者修改網站的項目名稱來實現在同一臺主機下部署多個網站。

           但是在真正的生產環境下,我們的網站往往都是採用的80端口,而且都是不帶有網站目錄路徑的。這個時候就可以通過不同的域名來對網站加以區分了。具體的實現過程是這樣的,首先通過配置域名解析,將多個域名都解析到同一個主機ip,然後我們在該主機上通過配置來讓主機可以將來自不同域名的請求轉發給不同的網站程序去處理。主機會截獲到請求的請求頭信息,然後獲取到host這個請求頭的值,這個值也就是該請求的來源域名。主機根據所配置的域名與網站程序的對應關係,將來自不同的域名的請求轉發給不同的程序去處理。

         這種配置域名和處理程序的對應關係在不同的環境下配置方法不一樣,但是原理都是一樣的。在iis環境下,叫做主機頭配置。意思就是配置請求報文的請求頭中的主機頭(host請求報文頭)和主機上的網站目錄的對應關係。在apache,ngnix環境下,則是直接通過配置文件cfg文件來配置不同的域名和網站根目錄之間的映射關係的。

            有了這個映射關係以後,那麼主機在接到請求時,首先就會獲得該請求來在哪個域名,然後根據配置的域名到網站根目錄的對應關係,將該請求轉發給對應的網站根目錄去進行處理。

         這樣就實現了一個ip一個80端口上部署無窮多個網站的效果。

         通過上面的分析,我們知道,在虛擬主機技術中,它是採用域名,ip和端口來表示一個網站的,雖然ip和端口都是完全一樣的,但是我們仍然可以實現在同一臺主機上部署多個網站,然後讓不同的域名映射到這些不同的網站的功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章