CloudFlareのようなCDNはどのように機能しますか?


23

私がこれまでに理解していること:

  • 現在のWebホスティングを維持しますが、サイトのDNSサーバーを現在のホスティングのDNSサーバーからCloudFlareのDNSサーバーに変更します。
  • CloudFlareは、世界中の複数のデータセンターからWebサイトのリソースを提供します。

ここで、このメカニズムの技術的な詳細を知りたいと思います。ここに私が持っているいくつかの質問があります:

  1. CloudFlareはキャッシュプロキシとして機能しますか?自分のサイトのページにたくさんの画像があるとします。CloudFlareは、それらのすべてのイメージを各データセンターにキャッシュし、それらのデータセンターから提供しますか?

  2. どのサイトリソースが影響を受けますか?静的なものだけですか?Webページ自体(HTMLドキュメント)はどうですか?ページがサーバーによって動的に生成された場合はどうなりますか?CloudFlareは、ページの最新バージョンを常に提供することをどのように確認しますか?

  3. 私のサイトへのPOSTリクエストはどうでしょうか(たとえば、訪問者がAjaxを介してデータをアップロードし、データベースに保存されます)。このことは私のサーバーで実行する必要があります。そのため、CloudFlareはこのプロセスのパフォーマンスを向上させません(できません)。それでは、CloudFlareはAjaxリクエストを元のWebホストに中継するだけですか?

回答:


23
  1. はい、キャッシングリバースプロキシです。
  2. "場合によります"。デフォルトでは、画像やCSSなどのみがキャッシュされますが、ゾーンごとにキャッシュレベルを設定し、ページルールを設定して、キャッシュされるものまたはキャッシュされるべきでないものをオーバーライドできます。静的HTMLはページルールによって強制的にキャッシュできますが、動的コンテンツは明らかにそうではありません。ここでの例外は、ビジネスプランまたはエンタープライズプランがある場合、または特定のホスティングパートナーを通じてサインアップする場合です。ここで、CloudFlareが動的であってもページで変更された情報のみを取得するRailgunテクノロジーにアクセスできます。すべてをキャッシュするようにCloudFlareを設定した場合、オリジンのキャッシュヘッダーでキャッシュタイムアウトを制御するか、CloudFlare UIでゾーンのキャッシュTTLを設定する必要があります。
  3. POSTは常にオリジンに送信する必要があるため、CloudFlareはそのまま送信します。CloudFlareはエニーキャストを使用して、最も近いデータセンターからDNSとHTTPを提供するため、パフォーマンスは向上します。

完全開示:私はCloudFlareで働いています。


5

もう少し明確にするために:

CloudFlareの仕組みについては、Quoraにかなり良い記事があります。

どのサイトリソースが影響を受けますか?静的なものだけですか?デフォルトでCloudFlareがキャッシュするもの

「CloudFlareはキャッシュプロキシとして機能しますか?私のサイトのページにたくさんの画像があります。CloudFlareはそれらのデータセンターのすべての画像をキャッシュし、それらのデータセンターから提供しますか?」

PageRulesを使用すると、静的コンテンツを超えてキャッシュを拡張できます。

注:サイトにあるサードパーティのリソース(Flickr、Google、Facebookなど)はキャッシュしません。


1

Damonの応答に追加するには:

CloudFlareで最も人気のある/推奨されるページルールを設定するための役立つビデオチュートリアルをここで見つけることができます。

cloudflare.com/features-page-rules

また、現在のプランで利用可能なページルールを最大限に使用している場合、プランを変更せずに追加のルールをすぐに購入できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.