如何在流行而強大的 Apache Web 服務器上托管兩個或多個站點。
在我的上一篇文章中,我解釋了如何為單個站點配置 Apache Web 服務器,事實證明這很容易。在這篇文章中,我將向你展示如何使用單個 Apache 實例來服務多個站點。
注意:我寫這篇文章的環境是 Fedora 27 虛擬機,配置了 Apache 2.4.29。如果你用另一個發行版或不同的 Fedora 版本,那么你使用的命令以及配置文件的位置和內容可能會有所不同。
正如我之前的文章中提到的,Apache 的所有配置文件都位于 /etc/httpd/conf 和 /etc/httpd/conf.d 。默認情況下,站點的數據位于 /var/www 中。對于多個站點,你需要提供多個位置,每個位置對應托管的站點。
基于名稱的虛擬主機
使用基于名稱的虛擬主機,你可以為多個站點使用一個 IP 地址。現代 Web 服務器,包括 Apache,使用指定 URL 的 hostname 部分來確定哪個虛擬 Web 主機響應頁面請求。這僅僅需要比一個站點更多的配置。
即使你只從單個站點開始,我也建議你將其設置為虛擬主機,這樣可以在以后更輕松地添加更多站點。在本文中,我將從上一篇文章中我們停止的地方開始,因此你需要設置原來的站點,即基于名稱的虛擬站點。
準備原來的站點
在設置第二個站點之前,你需要為現有網站提供基于名稱的虛擬主機。如果你現在沒有站點,請返回并立即創建一個。
一旦你有了站點,將以下內容添加到 /etc/httpd/conf/httpd.conf
配置文件的底部(添加此內容是你需要對 httpd.conf 文件進行的唯一更改):
<VirtualHost 127.0.0.1:80> DocumentRoot /var/www/html ServerName www.site1.org</VirtualHost>
這將是第一個虛擬主機配置節,它應該保持為第一個,以使其成為默認定義。這意味著通過 IP 地址或解析為此 IP 地址但沒有特定命名主機配置節的其它名稱對服務器的 HTTP 訪問將定向到此虛擬主機。所有其它虛擬主機配置節都應跟在此節之后。
你還需要使用 /etc/hosts 中的條目設置你的網站以提供名稱解析。上次,我們只使用了 localhost 的 IP 地址。通常,這可以使用你使用的任何名稱服務來完成,例如 Google 或 Godaddy。對于你的測試網站,通過在 /etc/hosts 中的 localhost 行添加一個新名稱來完成此操作。添加兩個網站的條目,方便你以后不需再次編輯此文件。結果如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 www.site1.org www.site2.org
讓我們將 /var/www/html/index.html 文件改變得更加明顯一點。它應該看起來像這樣(帶有一些額外的文本來識別這是站點 1):
<h1>Hello World</h1>Web site 1.
|
新聞熱點
疑難解答