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 在您的瀏覽器中。


恭喜! 您已成功使用 Apache Ubuntu 設置虛擬主機。
結論是
在本文中,我們在 Apache Ubuntu 上設置了一個虛擬主機。這對於在同一台服務器上為多個網站提供服務很有用。
謝謝你的閱讀! ?