web-dev-qa-db-ja.com

Apacheの名前ベースの仮想ホストはパブリックIPアドレスでどのように機能しますか?

ApacheWebサーバーは初めてです。 Apache Webサーバーを構成する場合、name-based virtual Hostを設定するオプションがあります。

私の理解では、ユーザーがWebブラウザでドメイン名www.example.comを入力すると、DNSサーバーに接続し、ドメイン名が(パブリック)IPアドレスに変換されます。次に、WebブラウザはIPアドレスを使用してWebサーバーに接続します。

ここで、パブリックIPアドレスa.a.a.aのサーバーがあるとします。 www.example.comwww.example1.comの2つのドメイン名を登録しました。これら2つのドメイン名は両方とも同じIPアドレスa.a.a.aを指しています。したがって、ユーザーがWebブラウザでwww.example.comまたはwww.example1.comと入力すると、DNSサーバーはそれらをIPアドレスa.a.a.aにポイントします。

このWebサイト のユーザーガイドに従って、名前ベースの仮想ホストを構成しました。

ただし、私が理解していないのは、DNSサーバーがすでにドメイン名をIPアドレスに変換しているため、すべてのユーザーがIPアドレスa.a.a.aを使用してWebサーバーに接続することです。 Apacheは、ユーザーがWebブラウザーでwww.example.comまたはwww.example1.comを使用しているかどうかをどのように認識しますか?

4
userpal

Httpヘッダーにはホストが含まれます。上記の例では、これはwww.example.comまたはwww.example1.comになります。このホストヘッダーはApacheによって読み取られ、クライアントに正しい仮想ホストを送信するために使用されます。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2

http://httpd.Apache.org/docs/2.2/vhosts/examples.html

4
dmourati