虛擬主機

虛擬主機(英語:virtual hosting)或稱共享主機shared web hosting),又稱虛擬伺服器,是一種單一主機或主機群,而且它們可以託管多個域名[1]、多個網站或服務。虛擬主機之間完全獨立,並可由用戶自行管理,虛擬並非指不存在,而是指空間是由實體的伺服器延伸而來,其硬體系統可以是基於伺服器群,或者單個伺服器。

其技術是互聯網伺服器採用的節省伺服器硬體成本的技術,虛擬主機技術主要應用於HTTP,FTP,EMAIL等多項服務,將一台伺服器的某項或者全部服務內容邏輯劃分為多個服務單位,對外表現為多個伺服器,從而充分利用伺服器硬體資源。如果劃分是系統級別的,則稱為虛擬伺服器。

使用虛擬伺服器目的

方便管理

所有的虛擬主機都在同一部主機中,因此彼此可以共用相同的組態設定,藉此節省管理的人力與成本。[2]

提高性能

相同主機內的虛擬主機可以共用彼此的程序集(Process Pool),因此可以縮短對客戶端的回應時間。[2]

降低成本

虛擬主機使得單一伺服器的資源可以被更有效的利用,包括記憶體、儲存空間或處理器資源。因為通常服務單一網址所需的資源對整部伺服器來說相當小,如此可讓伺服器的資源被更有效的利用。[3]

多個虛擬伺服器,可以通過軟體架設在同一個實體伺服器上,而每個虛擬伺服器有可以提供伺服器的所有功能,這樣相對來說每個虛擬伺服器的成本有一定程度的降低。

虛擬主機的實作類型

實作方式主要有三種:網址名稱對應(Name-based)、IP位址對應(IP-based)以及Port埠號對應(Port-based)。[2]

網址名稱對應(Name-based)

網址名稱對應(Name-based)是藉由辨識客戶端所以提供的網址,決定其所對應的服務,這個方法有效的減少IP位址的佔用,但缺點是必須仰賴DNS名稱對應服務的支援,若名稱對應服務中斷,對應此名稱的服務也會無法取用。[2]

IP位址對應(IP-based)

IP位址對應(IP-based)是指在同一部伺服器上,藉由同一份組態設定、不同的IP來管理多個服務。[2]

Port埠號對應(Port-based)

近似於IP位址對應,不過是在同一個IP之下,利用不同的Port埠號來區別不同的服務,藉以快速建立多個虛擬主機。例如:

  • 192.168.0.1:80
  • 192.168.0.1:8080
  • 192.168.0.1:8888

不過這類的應用大多用在私人或實驗性質的服務中,原因是使用者無法利用預設的埠號(例如Web服務的預設埠號80)取用提供的服務,除非使用者知道提供服務的埠號。[2]

選擇虛擬主機

主機的硬件設施情況
虛擬主機提供商的所擁有的虛擬主機機房,是什麼規模的數據中心,是否有足夠機房線路的頻寬,虛擬主機網站聯線的速度是否同時滿足他所有虛擬主機客戶的流量頻寬。
虛擬主機上架設的網站有多少
通常一個虛擬主機能夠架設上百至千個網站,若網站數量越多,就是共享同台伺服器的人就越多;相比較而言資源就比較吃緊。一般與機器的CPU、記憶體等有關。IIS一般為10000/每伺服器連接數。

參考文獻

  1. ^ How many active sites are there?. Netcraft. [14 July 2018]. (原始內容存檔於30 April 2013) (英語). Circa 1996-1997, the number of distinct IP addresses would have been a good approximation to the number of real sites, since hosting companies would typically allocate an IP address to each site with distinct content, and multiple domain names could point to the IP address being used to serve the same site content. However, with the adoption of HTTP/1.1 virtual hosting, and the availability of load balancing technology it is possible to reliably host a great number of active sites on a single (or relatively few) IP addresses. 
  2. ^ 2.0 2.1 2.2 2.3 2.4 2.5 存档副本 (PDF). [2013-05-16]. (原始內容存檔 (PDF)於2016-03-04).  引用錯誤:帶有name屬性「multiple2」的<ref>標籤用不同內容定義了多次
  3. ^ 存档副本. [2013-05-10]. (原始內容存檔於2021-05-06).