19.3. 虛擬主機設定

您可以使用 HTTP 設定工具 來設定虛擬主機,虛擬主機的設定可以讓您在同一部機器上執行不同位址、不同主機名稱或不同連接埠的多部伺服器。 舉例來說,您可以使用虛擬主機在同一部機器上執行 http://www.example.com 與 http://www.anotherexample.com 等兩個網站。 對於預設虛擬主機以及 IP 為主的虛擬主機,這個選項等同於 <VirtualHost> 指令; 而對於一個名稱為主的虛擬主機,這個選項等同於 <NameVirtualHost> 指令。

為一部虛擬主機設定的指令只適用於該部特定的虛擬主機,假如一個指令是使用 編輯預設設定 的按鈕來做全域性的設定,而且並沒有在虛擬主機的設定中定義,將會使用預設的設定。 舉例來說,您可以在 『主要』 的標簽頁中定義一個 『Webmaster 的電子郵件地址』,而不用在每一個虛擬主機中定義個別的電子郵件地址。

圖形 19-8 所示,HTTP 設定工具 含有一個預設的虛擬主機。

圖形 19-8. 虛擬主機

http://httpd.apache.org/docs-2.0/vhosts/ 與您機器上的 Apache HTTP 伺服器 說明文件提供了關於虛擬主機更多的資訊。

19.3.1. 新增與編輯一個虛擬主機

如要新增一個虛擬主機,請點選 『虛擬主機』 標簽頁中的 新增 按鈕。 您也可以在清單中選取一個您要修改的虛擬主機,再點選 編輯 的按鈕,來修改一個虛擬主機的設定。

19.3.1.1. 一般選項

一般選項』 的設定只適用於您要設定的虛擬主機,在 『虛擬主機名稱』 的欄位設定虛擬主機的名稱,這個名稱是由 HTTP 設定工具 使用來辨別虛擬主機的。

為這個虛擬主機設定 『文件檔所在目錄』 的數值為包含最底層文件檔(如 index.html)。 這個選項等同於 <VirtualHost> 指令下的 DocumentRoot 指令。 在 Red Hat Linux 7 之前,Red Hat Linux 所提供的 Apache HTTP 伺服器 使用 /home/httpd/html 當作 DocumentRoot。 然而在 Red Hat Linux 9 中,預設的 DocumentRoot/var/www/html

網站管理員的電子郵件地址』 選項等同於 VirtualHost 指令中的 ServerAdmin 指令。 假如您選擇要在錯誤頁顯示含有一個電子郵件地指的頁尾,將會使用這個電子郵件地址在在錯誤頁中的頁尾。

在 『主機資訊』 的部份,請選擇 『預設虛擬主機』、『IP 為主的虛擬主機』 或 『名稱為主的虛擬主機』。

預設虛擬主機

您只能設定一個預設的虛擬主機(請記得預設已經設定了一個),當所要求的 IP 位址並不在另一個虛擬主機特定地列出,則會使用這個預設的虛擬主機設定。 假如沒有定義任何的虛擬主機,則會使用主要的伺服器設定。

IP 為主的虛擬主機

假如您選擇 『IP 為主的虛擬主機,將會出現一個視窗用來設定以伺服器 IP 位址為主的 <VirtualHost> 指令。 請在 『IP 位址』 的欄位指定這個 IP 位址,如要指定多個 IP 位址,請以空白將每一個 IP 位址隔開。 如要指定連接埠號,請使用 『IP 位址:連接埠』 的格式,使用 :* 來設定該 IP 位址的所有連接埠,在 『伺服器主機名稱』 的欄位指定該虛擬主機的主機名稱。

名稱為主的虛擬主機

假如您選擇 『名稱為主的虛擬主機』,將會出現一個視窗用來設定以伺服器主機名稱為主的 NameVirtualHost 指令。 請在 『IP 位址』 的欄位指定這個 IP 位址,如要指定多個 IP 位址,請以空白將每一個 IP 位址隔開。 如要指定連接埠號,請使用 『IP 位址:連接埠』 的格式,使用 :* 來設定該 IP 位址的所有連接埠,在 『伺服器主機名稱』 的欄位指定該虛擬主機的主機名稱。 在 『別名』 的區域,點選 新增 來增加一個主機名稱的別名,如在此新增一個別名將會增加 NameVirtualHost 指令中的 ServerAlias 指令 。

19.3.1.2. SSL

注請注意
 

您無法在名稱為主的虛擬主機設定使用 SSL,因為 SSL 的 handshake(當瀏覽器接受安全網頁伺服器的憑證時)會發生在 HTTP 要求(用來辨識適當之名稱為主的虛擬主機)之前。 假如您想要使用名稱為主的虛擬主機,它們則只能使用在非安全的網頁伺服器。

圖形 19-9. SSL 支援

假如一個 Apache HTTP 伺服器 並沒有設定含有 SSL 支援,在一部 Apache HTTP 伺服器 與它的用戶端之間的連線通訊都是沒有經過加密的。 這在不含有個人或機密資訊的網站上是比較沒有太大關係的。 舉例來說,一個用來散佈開放原始碼軟體與說明文件的開放原始碼網站是不需要安全連線的。 然而一個需要顧客輸入信用卡資訊的電子商務網站,便應該要使用 Apache 的 SSL 之原來對其通訊進行加密處理。 啟用 Apache 的 SSL 支援將啟用 mod_ssl 安全模組的使用。 如要透過 HTTP 設定工具 來啟用它,您必須在 『主要』標簽頁 => 『可使用的位址』 中允許透過埠號 443 的存取。 請參考 菴 19.1 節 以得到更多資訊。 然後在 『虛擬主機』 的標簽頁選取虛擬主機的名稱,再點選 編輯 的按鈕,從左邊的選單選取 『SSL』,然後選取如 圖形 19-9 所示的 『啟用 SSL 支援』 選項。 『SSL 設定』 的部份已經預先設定好虛設的數位憑證,這個數位憑證為您的安全網頁伺服器提供認證,並使得用戶端的網頁瀏覽器能夠辨識這部安全伺服器。 您必須購買您自己的數位憑證,請勿在您的網站使用 Red Hat Linux 所提供之虛假的數位憑證。 如需關於購買一個 CA 認證的數位憑證的詳細資訊,請參考 第20章

19.3.1.3. 額外的虛擬主機選項

網站設定』、『環境變數』 與 『目錄』 等虛擬主機的選項是與您點選 編輯預設設定 按鈕要設定的相同指令,除了在這裡設定的選項是適用於您正要設定的個別虛擬主機。 請參考 菴 19.2 節 以取得關於這些選項的詳細資訊。