CloudflareがインストールされているWebサイトにIPアドレスを使用してアクセスすると、次のメッセージが表示されます。
Error 1003
Direct IP access not allowed
What happened?
You've requested an IP address that is part of the Cloudflare network.
A valid Host header must be supplied to reach the desired website.
私は学生です。
Cloudflareのセットアップに特別なものはありません。これは単なるHTTPのプロパティです。
クライアントがURLを開く場合、3つの重要なステップがあります。
古典的な例は次のようになります:
GET /pub/WWW/TheProject.html HTTP/1.1
Host: www.w3.org
多くのWebサイトが存在する大規模なホストについて考えてみます。簡単にするために、単一のIPアドレスがあるとします。何百ものドメイン名がこのアドレスに解決されます。サーバーはどのページを配信するかをどのように決定しますか?これは、HTTPリクエストでクライアントから提供されたホストの詳細を使用します。持っていない、または提供したくないものを要求すると、エラー応答が返されます。
あなたの場合、リクエストにはホスト指定子のIPアドレスが含まれています。
GET /whatever HTTP/1.1
Host: a.b.c.d
ホストがIPアドレスで指定されている場合、非常に多くのホストがページを提供しないことを決定します。ここでCloudflareについて特別なことは何もありません。また、DNSとは関係ありません。これは、サーバーがIPアドレスで指定されたホストへの要求に応答する方法に関するものであり、このエラーメッセージでA valid Host header must be supplied
。
このようにサーバーを構成する方法を説明する答えは次のとおりです: https://serverfault.com/a/607222
この種の動作は、Telnetを使用してサーバーに接続し、HTTP要求を手動で発行することで簡単に確認できます。
PS。同じ一般的な回答がHTTP[〜#〜] s [〜#〜]リクエストに適用されますが、 サーバー名表示 を使用します=セットアップで。 Host
がHTTP 1.1(1997)に付属していることは注目に値します。それ以前は、ここで説明するメカニズムは存在せず、サーバーは、クライアントが正当にIPアドレスに解決する名前を要求したのか、またはIPアドレスで直接ホストを要求したのかを確実に判断する方法がありませんでした。これはWebサイトの爆発的な成長のための重要な開発であったため、多くの古いクライアントがHost
を送信するように更新されました。 [詳細を入手してくれたコメント投稿者に感謝します。]
接続しようとしているシステムのhttpd構成に複数のサイトがリストされています。
HTTPサーバーがホストしているさまざまなサイトを区別できる唯一の方法は、直接URLを使用することです。
それらのサイトはCloudFlareのハードウェアでホストされているため、希望するエラーを提供できます。 CDN(コンテンツ配信ネットワーク)は、いくつかの要因に基づいて、ネットワーク全体で最も近いキャッシュされたコピーに接続をシフトします。
CloudFlareがサービスとして提供するものを見ると、セットアッププロセスの一部として、ドメインのDNSレコードをDNSサーバーに再ポイントし、DNSサーバーがCDNシステムのみを利用することを確認できます。開発者として、CDNを使用している場合でも、実際のホストがどこにあるかがわかっていて、それらに直接連絡できるため、顧客はそのアクセス権を失います。
これは、ホストをDDos攻撃から隔離するのにも役立ちます。インフラストラクチャ全体がCDNネットワーク内でホストされていない限り、CDNは引き続きコンテンツをホストに接続します。