ホームページ  >  記事  >  1 つの IP アドレスを複数のドメイン名に対応させることはできますか?

1 つの IP アドレスを複数のドメイン名に対応させることはできますか?

angryTom
angryTomオリジナル
2019-07-22 13:20:1345473ブラウズ

1 つの IP アドレスを複数のドメイン名に対応させることはできますか?

推奨チュートリアル: linux チュートリアル

まず、 IP バインディング複数ドメイン名は非常に一般的です。レンタルされた仮想ホストのほとんどには、同じ IP を共有する複数のホストがあります。アクセスされているホストを区別するには、次の 2 つの側面を実装する必要があります:

1クライアントは異なる Web サイトをどのように区別しますか?

クライアントがリクエストを行うとき、HTTP リクエストにリクエストされる特定のホスト名が含まれます。たとえば、次のようなリクエストです。 Google が通過するアクセス パケット キャプチャの分析内容は次のとおりです:

GET / HTTP/1.1
Host: www.google.com

リクエスト全体がサーバーに送信され、リクエストする Web サイトのドメイン名を識別するホスト フィールドがあります。 [ホスト] フィールドが異なるため、アクセスは同じ IP アドレスに行われるため、サーバー ソフトウェアにはどの Web サイトが訪問されているかを区別する方法があります。

ホスト フィールドの具体的な定義については、RFC-2616 のセクション 14.23 を参照してください: http://www.rfc-editor.org/rfc/rfc2616.txt

次のは抜粋です (太字部分に注意してください):

14.23 Host

Host リクエスト ヘッダー フィールドには、リクエストされているリソースのインターネット ホストとポート
番号を指定します。 original
ユーザーまたは参照リソースによって指定された URI (通常は HTTP URL、セクション 3.2.2 で説明されているように
)。Host フィールドの値は、
によって指定されたオリジンサーバーまたはゲートウェイの命名機関を表さなければなりません(MUST)。
元の URL。これにより、オリジン サーバーまたはゲートウェイは、単一 IP 上の複数のホスト名のサーバーのルート "/"

URL など、内部的に曖昧な URL を 区別できるようになります。 address.

また、RFC-2616 は HTTP プロトコルの最新仕様ではありません。具体的な仕様については、RFC-2616 の説明リンクを参照してください: RFC 2616 に関する情報

##2. サーバー側の設定方法

サーバーが Apache を使用している場合は、Apache 設定ファイルに VirtualHost を追加して、新しい仮想ホストを追加します:

<VirtualHost 10.0.0.1>
ServerAdmin admin@admin
DocumentRoot "D:/website1"
ServerName http://myhost1.com
DirectoryIndex index.php
</VirtualHost>
<VirtualHost 10.0.0.1>
ServerAdmin admin@admin
DocumentRoot "D:/website2"
ServerName http://myhost2.com
DirectoryIndex index.php
</VirtualHost>

上記では、ドメイン名 http://myhost1.com と http://myhost2.com がそれぞれ異なるルート ディレクトリにあることが定義されています。この構成では、Apache が http://myhost1 からリクエストを受信した場合、 com の場合は、d:/website1 に移動します。対応するページを見つけます。http://myhost2.com からのリクエストの場合は、d:/website2 に移動して、対応するページを見つけます。

通常、Apache には IP アドレスを使用してアクセスできるデフォルトの Web サイトもあります。この Web サイトが無効に設定されている場合、ホストは IP アドレスを介して HTTP リソースに直接アクセスできません。

#IIS の場合、IIS は同じ IP を使用して複数のサイトをバインドできます。詳細については、次の図を参照してください。 #[デフォルトのウェブサイト] -> [プロパティ] -> [ウェブサイト] -> [詳細設定] で、別のドメイン名を追加するだけです。 IIS のバージョンが低いため、複数の Web サイトのバインドをサポートできません。IIS の上位バージョンでは、複数の Web サイトを構成でき、各 Web サイトを異なるドメイン名にバインドして、アクセス時に区別することができます。

サーバーがデフォルトの Web サイトを設定していない場合、IP アドレスはホストに直接アクセスできません。

1 つの IP アドレスを複数のドメイン名に対応させることはできますか?したがって、IP アドレスを介して Web サイトに直接アクセスすると、次の 2 つの状況が発生します:

1. サーバーはデフォルトの Web サイトを設定するか、IP をホストとして使用します。リクエストの [ホスト] フィールドに一致する名前を指定すると、これは IP 経由でアクセスする Web サイトになります;

2. サーバーがデフォルトの Web サイトを設定しないか、デフォルトの Web サイトが禁止されている場合は、 IP 経由では何も開けません。通常、私が遭遇したのは 404 エラー (ページが見つかりません) でした。私が使用したいくつかの仮想ホスティング サービス プロバイダーでも同様のエラーが発生しました。

さらに、IIS、Apache、またはその他の種類の Web サイト サーバー ソフトウェアであっても、複数のドメイン名をサポートするだけでなく、複数の IP もサポートします。つまり、サーバーには複数の IP がサポートされます。ドメイン名と複数の IP アドレスを同時に使用できますが、IP は相互に干渉しません。

以上が1 つの IP アドレスを複数のドメイン名に対応させることはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。