
インターネット上に 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
答え4
要するに...
1 - さまざまなドメインの DNS エントリがすべてボックスを指すように設定します。
2 - 他の人が説明したように、要求されたホスト名に一致するように Web サーバー (どのサーバーかは指定しません) を設定します。
こうすることで、すべてのドメインに対するすべてのリクエストが同じマシンに送信され、そのマシンの構成によって、要求されたドメインが取得され、そのサイトのコンテンツを含む適切なフォルダーにルーティングされます。