ドメイン名がWebサーバーにのみアクセスできるように、apache2を使用します。

ドメイン名がWebサーバーにのみアクセスできるように、apache2を使用します。

example.comドメイン名と固定IPアドレスを使用するVPSがあります123.123.123.123
ウェブサイトのコンテンツにアクセスするために、ブラウザはドメイン名を提供したいと思います。

実際、私はブラウザのURLバーに自分のサイトをexemple.com表示した場合にのみ人々が自分のサイトを見ることができるようにしたいと思います。123.123.123.123

だから私の/var/www/ディレクトリ内に2つのサブディレクトリを作成しました。
/var/www/default(DNを提供していない人が見ることができるもの)と
/var/www/exemple実際のウェブサイトのコンテンツ。ファイルをこのように編集しました
/etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80>
    DocumentRoot /var/www/default
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    ServerAlias example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/exemple

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

私の考えにはこれが効果があるようです。実際にブラウザのURLバーに と/var/www/defaultを入れると、サーバーは私にコンテンツを提供します。なぜ?123.123.123.123exemple.com

答え1

Apacheはトラフィックを次に転送します。最初VirtualHost構成に示されているものと一致します。最初に定義されたエントリは存在しないか定義されていないため、ServerNameバインドServerAliasされたホスト名またはバインドされたIPアドレスに対してポート80のすべてのトラフィックをキャプチャするように設定されます。

答え2

example.com専用のVirtualHostの名前を忘れました。私の修正(およびいくつかの追加提案)は次のとおりです。

<VirtualHost *:80>
    DocumentRoot /var/www/default
</VirtualHost>

<VirtualHost 123.123.123.123:80>                              # <= Should fix your issue
    ServerName example.com
    ServerAlias www.example.com                               # <= Suggested modification

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/exemple

    ErrorLog ${APACHE_LOG_DIR}/error-example.log              # <= Suggested modification
    CustomLog ${APACHE_LOG_DIR}/access-example.log combined   # <= Suggested modification
</VirtualHost>

もちろん、Apacheを再ロードすることを忘れないでください。

関連情報