如何將第二個虛擬主機新增至 Apache 伺服器設定?

如何將第二個虛擬主機新增至 Apache 伺服器設定?

我有一個在 AWS EC2 執行個體上執行的 Apache 伺服器。目前,一個虛擬主機正在伺服器上成功運行,我想添加第二個虛擬主機/網域,但我不知道如何讓它工作。

對資料進行匿名處理後,這是我為httpd.conf使第一個虛擬主機運作而添加的原始資訊:

<Directory "/var/www/site-1/public">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

<VirtualHost *:80>
    DocumentRoot "/var/www/site-1/public"
    ServerName "site-1.com"
    ServerAlias "*.site-1.com"
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =site-1.com [OR]
    RewriteCond %{SERVER_NAME} =*.site-1.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

然後,我在 Google Domains 中註冊了以下內容site-1(使用虛假 IP 位址):

Host name     Type  TTL      Data
site-1.com    A     1 hour   4.184.56.145
*.site-1.com  A     1 hour   4.184.56.145

然後,我使用 Certbot 新增 SSL 證書,這會在httpd.confGoogle Domains DNS 設定中新增以下行和 ACME 質詢:

Include /etc/httpd/conf/httpd-le-ssl.conf

這一切工作正常。然後,我購買了第二個網域 ( site-2.com),現在,我只是嘗試讓虛擬主機index.html在網站目錄的根目錄中運行一個非常簡單的檔案(即/var/www/site-2)。

為此,我在最底部添加了以下內容httpd.conf

<Directory "/var/www/site-2">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

<VirtualHost *:80>
    DocumentRoot "/var/www/site-2"
    ServerName "site-2.com"
</VirtualHost>

以下 DNS 設定已新增至 Google Domains 中site-2

Host name     Type  TTL      Data
site-2.com    A     1 hour   4.184.56.145

自從添加所有這些設定以來已經有幾個小時了site-2,我用 重新啟動了 Apache 伺服器幾次sudo systemctl restart httpd。但是,當我轉到 時site-2.com,我得到以下頁面,這不是index.html我放置在下面的範例文件/var/www/site-2

在此輸入影像描述

還值得注意的是, 的圖標site-2實際上是 的圖標site-1。不知道為什麼。此外,目錄/檔案權限/所有權site-2與 相同site-1

任何人都可以提供任何想法來解釋為什麼這不起作用嗎?對於它的價值,在做了相當多的研究之後,我認為我必須將以下行添加到httpd.conf,但這樣做並重新啟動伺服器並沒有什麼區別:

NameVirtualHost *:80

編輯: 我剛剛想到了一些事情。無論出於何種原因,site-2都指向var/www/html目錄。如果我將範例index.html檔案放入該目錄中,那麼當我造訪 site-2.com 時它會正確載入。這是為什麼?為什麼以下虛擬主機區塊不起作用?

<VirtualHost *:80>
    DocumentRoot "/var/www/site-2"
    ServerName "site-2.com"
</VirtualHost>

答案1

老實說,我不知道這筆交易是什麼,但它才剛開始運作。也許這是一個 DNS 傳播問題(不確定),但我在原始問題中列出的配置開始工作。

相關內容