CentOS 上の httpd が最初の VirtualHost のみを解決する

CentOS 上の httpd が最初の VirtualHost のみを解決する

新しいクラウド サーバーを入手したばかりで、セットアップ中にブラウザーでサーバーの IP アドレスを指定して Web ルートにアクセスできますが、ドメイン名がまだ伝播しているため、アクセスしても解決されません。

ブラウザでサーバーのIPアドレスを指定すると、実際には最初に設定したVirtualHostに解決されます。いけないルートフォルダになります。このVirtualHostは、IPアドレス/パス、 だけでなくIPアドレス

サーバーのセットアップ:
ホスト:Rackspace クラウド サーバー
OS:セントOS6
仮想ホスト:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName www.wphax.com
    ServerAlias wphax.com *.wphax.com
    DocumentRoot /var/www/wphaxcom
    ErrorLog /var/www/wphaxcom/error.log
    CustomLog /var/www/wphaxcom/access.log combined
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName www.dnadvanced.com
    ServerAlias dnadvanced.com *.dnadvanced.com
    DocumentRoot /var/www/dnadvancedcom
    ErrorLog /var/www/dnadvancedcom/error.log
    CustomLog /var/www/dnadvancedcom/access.log combined
</VirtualHost>

この原因は何なのか、また、IP アドレスを入力してもルート ディレクトリにアクセスできないようにしながら、ドメイン名が指定されたフォルダーに正しく解決されるように設定するにはどうすればよいのか、ご存知の方はいらっしゃいますか? よろしくお願いします。

答え1

から名前ベースの仮想ホストのサポートApache サーバーのドキュメントの記事:

IP ベースの仮想ホストは、接続の IP アドレスを使用して、サービスを提供する正しい仮想ホストを決定します。 [...]

名前ベースの仮想ホスティングは通常、よりシンプルです。DNS サーバーを構成して各ホスト名を正しい IP アドレスにマップし、Apache HTTP サーバーを構成して異なるホスト名を認識するだけでよいからです。 [...]

IPアドレスを直接指定することで、基本的には、構成ファイルにリストされている最初の仮想ホストを選択します。構成ファイルで IP アドレスを指定していないため、そのホストはすべての IP をリッスンします。Apache がどの Web サイトを提供するかを決定する方法は、クライアントのリクエストから HTTP ヘッダーで受信した情報によって決まります。

両方の仮想ホストに独立した IP アドレス経由でアクセスできない場合、または異なるポート番号 (つまり、2 番目のポートをポート 81 に設定) でアクセスできない場合は、ドメイン名の変更が反映されるまで待つ必要があります。


もし、あんたが本当にサーバーをテストする必要がある場合は、各リクエストの後にHTTPヘッダーを手動で変更してみてください(データの改ざんApache がブラウザに適切なページを提供するように、Firefox 用のアドオンをインストールします。

関連情報