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

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

先決條件

  • Apache HTTP Server 安裝在 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 用戶所有。要授予權限,請執行以下操作 命令 須藤

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 上設置了一個虛擬主機。這對於在同一台服務器上為多個網站提供服務很有用。

謝謝你的閱讀! ?