1 つの IP アドレスと複数の Web サイトをどうやって持つのですか?

1 つの IP アドレスと複数の Web サイトをどうやって持つのですか?

インターネット上に 1 つの IP アドレスがあり、Web 名が複数ある場合、どうすればよいでしょうか。たとえば、ホスティング会社が共有 IP を持ち、ドメイン名が無制限である場合 (そのボックス上の他のユーザーと同様)。

インターネット上にボックスがあるのですが、誰かが別の www を入力したときに、別の Web サイトを保持する別のマシンを指定したいのです (別のボックス内のすぐ隣にあります)。これはすべてサブドメイン化ですか? ありがとうございます。

私はホスティング会社です

答え1

これは HTTP 1.1 プロトコルの一部です。

具体的には、HTTP 1.1 プロトコルには、クライアントがアクセスしようとしている特定のサーバー上の Web サイトを指定する「host:」というヘッダーが含まれています。

したがって、snoopy.net と woodstock.org の両方が 192.0.32.10 を共有しており、ブラウザがhttp://snoopy.net/doghouse 特定の http リクエストからコンテンツを取得しようとしている場合、次のようになります。

GET /doghouse HTTP/1.1
Host: snoopy.net

希望するURLが以下の場合、http://woodstock.org/seedsリクエストは次のようになります。

GET /seeds HTTP/1.1
Host: woodstock.org

どちらの場合も、コンピュータとサーバーのポート 80 の間に TCP ソケットが存在します。サーバーは、Host ヘッダーに基づいて、/var/www/snoopy.net または /var/www/woodstock.org/ からコンテンツを取得することを認識します。

クッキーやブラウザの種類、許可されたコンテンツなどの他のヘッダーもありますが、具体的には「ホスト」ヘッダーによって、Web サーバーはどの仮想 Web サイトが要求されているかを認識できるようになります。

さらに詳しくRFC2616

これは、httpsサイトがしなければならない** 独自の IP アドレスを持ちます - SSL キー交換と証明書の検証は http トランザクションの前に行われるため、http サーバーは 192.0.32.10 のポート 443 で https 接続を受信したときに、「woodstock.org」または「snoopy.net」の証明書を発行することを認識しません。


編集

** コメント欄グラヴィティTLS仕様にはSSLの拡張機能があり、サーバーはユーザーがどのWebサイトにアクセスしようとしているのかを知ることができ、ほとんどの最新のWebブラウザにはこれらの拡張機能が搭載されていることを指摘しています。しなければならないちょっと強すぎる。

答え2

最近のブラウザはすべて、リクエストとともに「Host:」ヘッダーと呼ばれるものを送信します。

Firefox がこのページに送信する実際のリクエストは次のとおりです。

ホスト: superuser.com
ユーザーエージェント: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)
受け入れ: text/html、application/xhtml+xml、application/xml;q=0.9、*/*;q=0.8
受け入れ言語: en-us,en;q=0.5
受け入れエンコーディング: gzip、deflate
受け入れ文字セット: ISO-8859-1、utf-8;q=0.7、*;q=0.7
キープアライブ: 300
接続: キープアライブ

ご覧の通り、

ホスト: superuser.com
ビットは問題の Web サイトを識別します。IIS

および Apache では、特定の IP/ホストの組み合わせからの要求のみを受け入れる仮想 Web サイトを構成できます。

あなたの特定の問題に関しては、あなたの特定のホスティング会社があなたにどのように構成をリクエストすることを望んでいるかを読んでおく必要があります。

答え3

1つのIPアドレス/ホストで複数のドメイン/サブドメインをホストする技術は、仮想ホストhttp get リクエストにはリクエストの対象となるドメイン名が含まれており、これにより Web サーバーはリクエストを特定の仮想ドメインと照合できます。

内部に複数の物理ホストがあり、外部IPが1つしかない場合は、設定を検討する必要があります。リバースプロキシリクエストを正しいマシン/内部 IP アドレスに転送します。

答え4

要するに...

1 - さまざまなドメインの DNS エントリがすべてボックスを指すように設定します。

2 - 他の人が説明したように、要求されたホスト名に一致するように Web サーバー (どのサーバーかは指定しません) を設定します。

こうすることで、すべてのドメインに対するすべてのリクエストが同じマシンに送信され、そのマシンの構成によって、要求されたドメインが取得され、そのサイトのコンテンツを含む適切なフォルダーにルーティングされます。

関連情報