Apache 虛擬主機的目的是在一台機器上運行多個網站。 它可以基於 IP 或基於名稱。

  • 基於 IP 的虛擬主機根據 IP 地址設置各種指令。因此,每個主機都需要一個單獨的 IP 地址,並且通常用於在不同的端口和接口上託管網站。
  • 基於名稱的虛擬主機允許您使用相同的 IP 地址託管多個網站,因為服務器依賴於客戶端將主機名報告為 HTTP 標頭。

先決條件

  • Apache HTTP 服務器安裝在 Ubuntu 20.04 機器上。
    (了解如何在 Apache Ubuntu 上安裝 HTTP 服務器)
  • 至少兩個域名用於測試虛擬主機
  • 內臟 須藤 或root權限

創建網站目錄結構

本教程使用域 example1.com 什麼時候 example2.com 顯示 Apache 虛擬主機。

首先為這兩個站點創建目錄 /var/www , 請執行下列操作 mkdir 命令與 sudo

sudo mkdir -p /var/www/example1.com/public_html
sudo mkdir -p /var/www/example2.com/public_html

這些目錄包括 public_html 您要存儲網站文件的目錄。

因為我在幫助下創建了這些目錄 須藤 當前由 root 用戶擁有的命令。要授予他們權限,請執行以下操作: chown 命令與 須藤

sudo chown -R $USER:$USER /var/www/example1.com/public_html
sudo chown -R $USER:$USER /var/www/example2.com/public_html

下一個, index.html 在文件中包含以下腳本 public_html 這兩個站點的目錄。這將幫助您稍後測試您的 Apache 虛擬主機。為此,請使用您最喜歡的編輯器。

nano /var/www/example1.com/public_html/index.html

然後復制粘貼下面的HTML(這是設置頁面標題和添加兩個標題的基本HTML代碼)

<html>
	<head>
		<title>Welcome to example1.com!</title>
	</head>
	<body>
		<center>
			<h3>Congratulations! You've have successfully reached </h3> <h2>example1.com</h2>
		</center>
	</body>
</html>

對其他域名也這樣做。

創建 Apache 虛擬主機文件

您需要為每個域名創建一個虛擬主機文件。利用 cp 此命令複製每個域名的默認設置。

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example1.com.conf

對於第二個域名,

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example2.com.conf

然後使用您喜歡的文本編輯器編輯這些配置文件。對於第一個域名,

sudo nano /etc/apache2/sites-available/example1.com.conf
編輯虛擬主機文件

請輸入管理員的電子郵件地址 ServerAdmin以及該域名的站點根目錄的位置 DocumentRoot..

略低 DocumentRoot為了 ServerName 持有域名, ServerAlias 如上圖所示,預留域名別名(如 www)。

對其他域也這樣做。

sudo nano /etc/apache2/sites-available/example2.com.conf
其他域的虛擬主機文件

更新配置以啟用虛擬主機

然後,要啟用虛擬主機, a2ensite 公共事業。運行以下命令以啟用網站。

sudo a2ensite example1.com

同樣,對於不同的域名:

sudo a2ensite example2.com

現在您已準備好重新啟動 Apache HTTP 服務器以激活新配置並運行以下命令: systemctl 命令與 sudo

sudo systemctl reload apache2

現在您可以通過訪問確認 https://example1.com 什麼時候 https://example2.com 在瀏覽器中。

Example1.com example1.com
Example2.com example2.com

恭喜! 您已成功在 Apache Ubuntu 上設置了虛擬主機。

結論是

在本文中,我們將為 Apache Ubuntu 設置一個虛擬主機。這有助於在同一台服務器上為多個網站提供服務。

謝謝你的閱讀! ??