数時間前に、Discourse サイト(example.com)に対して Cloudflare を CDN として設定しました(灰色の雲アイコン)。その後、以下のような情報に遭遇しました。
そのため、私は以下のように追加しました(最後の行)。
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Lets Encrypt (https) を追加したい場合は、これらの 2 行のコメントアウトを外してください
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
- "templates/cloudflare.template.yml"
質問です。Discourse に対して Cloudflare を CDN としてのみ使用する場合、これは必要だったのでしょうか?それとも指示を誤解したのでしょうか?不要であればテンプレートを追加したくありません。
「いいね!」 8
Stephen
(Stephen)
2
要約すると、CloudFlare は一般的な CDN ではないためです。
灰色の雲は、CloudFlare がそのアドレスに対して DNS のみを提供していることを意味します。
オレンジ色の雲をオンにすると、外部に公開される IP アドレスが変更され、すべてのトラフィックが CloudFlare のネットワーク経由でプロキシされます。これにより、サーバーの保護と、画像や JavaScript などのアセットのキャッシュが可能になります。
テンプレートが必要な理由は、CloudFlare があなたのサイトと外部世界の間に入った時点で、サーバーには CloudFlare の IP アドレスからの接続しか表示されなくなるためです。テンプレートを使用することで、CloudFlare が CF-Connecting-IP ヘッダーに転送するクライアント IP を、あなたのサイトが再度認識できるようになります。
これを正しく設定しないと、接続制限エラーが発生したり、登録 IP アドレスに関するエラーに直面したりします。これは、すべてのユーザートラフィックが少数のアドレスから来ているように見えるためです。
CloudFlare CDN(オレンジ色の雲)を有効にする場合は、もう一歩進んで、Discourse インスタンスのアドレスに対してページルールを設定する必要があります。このルールでは「パフォーマンスの無効化」を選択し、Discourse と干渉することが広く知られている CloudFlare の機能をオフにする必要があります。
また、S3 バケットではなく CloudFlare をサイト前面に使用している場合、サーバーとインターネット上のクライアントの間に追加のネットワークホップが生じます。Discourse は単なるウェブサイトではなく、JavaScript アプリケーションであることを忘れないでください。Discourse がブラウザで読み込まれた後、ユーザーがリンクをクリックしてもページはダウンロードされません。これらの追加のネットワークホップは、すべてのクリックに小さくはあるが完全に無視できない遅延を追加します。
サイトが攻撃を受けていない限り、CloudFlare を賢く使う方法は、アセットを S3(CDN ではなくオブジェクトストレージ)に移行し、その S3 ストレージの前面に CloudFlare を配置することです。これにより、クライアントとの通信は素早く保たれ、アセットのダウンロード帯域幅が削減され、何より Discourse サーバーのローカルストレージを解放できます。
「いいね!」 14
Bill
(Bill)
3
Cloudflare の設定が正しく行われていない状態で、サイトを運営していたなんて信じられません。エラーに気づかなかったことに驚いています。情報提供ありがとうございます!
「いいね!」 1
ありがとう、@Stephen。とても有益な情報でした。私の主な結論は、従来のCDNの方が混乱が少ないため、Cloudflareは私にとって適切な選択ではなかったかもしれないということです。DDoS保護がないにもかかわらず、です。
「いいね!」 3
system
(system)
クローズされました:
6
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.