基於名稱的虛擬主機配置

基於名稱的 Apache 虛擬主機在 Apache 網站上描述如下:

使用基於名稱的虛擬主機,伺服器依賴客戶端將主機名報告為 HTTP 標頭的一部分。使用此技術,許多不同的主機可以共享相同的 IP 地址。

因此,可以通過此方法在一臺伺服器上託管多個網站。在 ubuntu 上,配置檔案位於/ etc / apache2 / sites-available 中。在該目錄中,你將找到 000-default.conf。這是預設配置,所有請求都將傳送到此配置檔案,直到其他請求被設定為止。

要設定虛擬主機,此處將使用 example.com ,但你應將其替換為 domain.com 。複製預設檔案:

 cp 000-default.conf example.com.conf

配置檔案可以具有以下指令:

 <VirtualHost *:80>
        ServerAdmin admin@example.com
        ServerName example.com
        ServerAlias www.example.com

        DocumentRoot /var/www/example.com/html
        
        ErrorLog /var/log/apache/logs/error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache/logs/access.log combined    
</VirtualHost>
  • 第一行表示應匹配埠 80(預設 http 埠)上的所有請求。你也可以使用 IP 地址而不是*,即伺服器的 IP。
  • ServerAdmin 是用於顯示 http 錯誤訊息的網站管理員的聯絡方式。
  • ServerName 是網站的域名。
  • ServerAlias 是網站的第二名,通常是 www.domain.com
  • DocumentRoot 是我們瀏覽網站時載入的根資料夾。
  • ErrorLog 是指向錯誤的檔案
  • LogLevel。是要傳送到日誌的錯誤級別
  • CustomLog 是訪問資訊的檔案

使用你的網站域名和網站檔案的相應目錄編輯替換 example.com 的檔案。

儲存檔案並使用以下 Apache 命令啟用站點:

sudo a2ensite example.com.conf

重新載入 apache

sudo service apache2 reload

還有一些必須檢查的事情:

  • 確保你的域的 DNS 設定為正確的 IP(這可能需要一段時間才能傳播)
  • 確保你的埠 80 在防火牆上開啟
  • 確保在伺服器檔案上正確設定了檔案許可權 - 所有權應為 www-data:www-data 和目錄許可權應為 750,檔案許可權應為 640。

你的虛擬主機應該正常執行! 你可以為同一伺服器上的其他網站重複此操作,使用不同的配置檔案(使用相同的命名約定)和/ var / www 下的不同目錄。