Apache サーバー構成に 2 番目の仮想ホストを追加するにはどうすればよいですか?

Apache サーバー構成に 2 番目の仮想ホストを追加するにはどうすればよいですか?

AWS EC2 インスタンスで Apache サーバーを実行しています。現在、サーバー上で 1 つの仮想ホストが正常に実行されており、2 つ目の仮想ホスト/ドメインを追加したいのですが、動作させる方法がわかりません。

データを匿名化して、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

httpd.conf次に、Certbot を使用して SSL 証明書を追加しました。これにより、Google Domains DNS 設定に次の行と ACME チャレンジが追加されました。

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

すべて正常に動作しています。その後、2 番目のドメイン ( ) を購入し、今のところは、サイト ディレクトリのルートにある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 伝播の問題だったのかもしれません (確信はありません) が、元の質問に記載した構成が機能し始めました。

関連情報