Discourse のために CDN を有効にする

つまり、ファイルは私のシステムと同期せず、CloudFront は単にそれらをキャッシュするだけでしょうか。私の理解は合っていますか?

「いいね!」 3

はい、その通りです。CDN は、リクエストされたアセットのみをあなたのサイトから取得します。

Discourse は、CSS や JavaScript などの静的アセットだけでなく、アップロードファイルも S3 へプッシュします。

「いいね!」 4

Cloudflare ルールを使用して、CSS や JavaScript などの静的アセットをキャッシュすることは可能でしょうか?

「いいね!」 2

はい、私たちはそのように使用しており、問題なく動作しています。ただし、JavaScript の最適化を無効にするよう、十分に注意してください。当社の設定は以下でご確認いただけます:

「いいね!」 4

ご返信ありがとうございます。

2 番目と 3 番目のルールはすでに追加しましたが、1 番目のルールがわかりません。301 リダイレクトが必要な理由は何でしょうか?

「いいね!」 2

必要ありません。説明に記載されています。

「いいね!」 3

ご返信ありがとうございます。CSS や JavaScript などの静的アセットについてはどうでしょうか?CSS や JavaScript 向けのルールは設定可能ですか?

「いいね!」 2

それはテストしていません。動作するかどうかはわかりません。少なくとも、ビルドのたびに Cloudflare のキャッシュをクリアする必要があります。

「いいね!」 2

私としては、リビルドのたびにキャッシュをクリアしても問題ありません。https://myforum.com/assets/ 内のすべてをキャッシュするルールを設定した場合、他にどのような問題が発生する可能性がありますか?これによってユーザーのログインに影響が出ることはありますか?もし許可いただければ、1週間テストして報告いたします。まだ未使用のルールが1つ残っています。

「いいね!」 2

念のため確認ですが、Cloudflare CDN を使用している場合、このフィールド(および CDN URL)は使用しないという理解で正しいでしょうか?

ドキュメントに従って、app.yml に cloudflare.template を設定しました。

Cloudflare を使用する際に、さらに設定は必要でしょうか?

「いいね!」 1

CDNとしてStackPathを正常に使用しました。期待どおりに動作します!

「いいね!」 2

これは現在も同様でしょうか?

2019年より:

細心の注意を払う必要があり、Cloudflare のメリットの一部を失うようです。

2020年より:

2021年より:

では、Cloudflare は今日の Discourse で信頼性が高く効率的でしょうか?「Rocket Loader」機能を無効にすると、メリットは最小限になりますか?

Stackpath から Bunny CDN に移行しようと考えていましたが、私のフォーラムドメインの所有者であり元管理者でもある人物が Cloudflare のエンタープライズアカウント(tinyURL の所有者でもあります)を持っており、そこにドメインを無料で追加できるとのことです(https://unicyclist.com/t/looking-for-a-decrease-in-the-forum-fees-in-the-future/274858/6)。

そこで、Bunny CDN の代わりに Cloudflare を使用するのは、適切で、手間がかからず、効果的なのか疑問に思っています。

「いいね!」 2

画像が多い場合、直接接続されたSSDを増設するためにかかる費用は、同等のS3費用よりもはるかに高くなります。

S3は、インバウンドとアウトバウンドの料金が発生するため、費用対効果を高めるにはCDNが必要ですが、それでも高速SSDを増設するよりもはるかに安価です。CloudflareはS3の前に配置できますが、アセットキャッシュが唯一確実に使用できる機能です。Cloudflareをクライアントとアプリケーションサーバーの間に配置すると、ホップ数が増加し、アプリケーションのレイテンシが上昇します。それは魔法の弾丸ではありません。

「いいね!」 2

画像はそれほど多くありません。CDNの目標は、コミュニティが国際的(主に米国とヨーロッパ)であるため、すべてのユーザーにアセットを高速で読み込めるようにすることです。

S3を使用していますが、バックアップの保存にのみ使用しています。

「いいね!」 1

簡単な質問です。CDNを変更した後に再ベイクは必須ですか?それともCDNのURLが異なる場合のみですか?それとも全く必要ないのでしょうか?


編集:または、レールスクリプトを使用して、クックされた投稿の古いURLを新しいURLに置き換えるだけで可能ですか?

例えば、次のような投稿がある場合:

<img class="ytp-thumbnail-image"
src="https://f5i4i8k5.stackpathcdn.com/uploads/default/original/3X/f/3/f3bc5ab19cc0394f33fd008e90ca06e081886a0b.jpeg"
title="Riding a unicycle part 76: Sullivan Canyon - Los Angeles"
width="480"
height="360"
loading="lazy"
style="aspect-ratio: 480 / 360;"
>

f5i4i8k5.stackpathcdn.com から newcdn.unicyclist.com への文字列の検索と置換を、何も壊さずに実行できますか?安全なように思えますが、確信が持てません。

すべての投稿を再ベイクしても構いませんが、前回直面した問題は、数千個の埋め込みYouTube動画があり、再ベイク中にYouTubeへのリクエストが多すぎたためにIPがYouTubeからブラックリストに登録されたことです。

そのため、同じ厄介な問題に直面してすべての投稿を再ベイクする以外の安全な代替手段があれば、そちらを選択したいです…

「いいね!」 3

すべての投稿内の文字列を置換するrakeタスクがあります。それを実行しても安全で良い考えだと思います。すべての投稿内の文字列を置換する がお探しのものだと思います。

「いいね!」 2

ジェイさん、こんにちは。

rakeタスクの使用については、確信が持てません。

CDNのURLは、rawフィールドではなく、cookedフィールドに存在するようです(メールで送信された場合を除く)。

私の理解では、post:remap は raw フィールド内の文字列のみを検索します。

raw フィールドと cooked フィールドの両方でCDNのURLを置き換えることが安全であれば、カスタムRailsスクリプトを使用すべきでしょうか?

「いいね!」 2

おっしゃる通りです。データベース内のすべてのフィールドの文字列を置き換える別の「もの」があります。それがお探しのものです。申し訳ありませんが、今は見つけられません。あるs3から別のs3への移行に関するトピックはいくつかありますが、howto のようなものはないようです。

「いいね!」 2

この手がかりをありがとうございます!

これのことだと思いますか?

DbHelper.remap('from', 'to')

Rebaking old posts won't pull new S3 CDN URL after S3 bucket rename - #10 by Brad_Wood で見つけました。

そしてここで使用されています:

CDNサービスを変更する際の、リベイクの安全な代替手段であれば、howto があれば確かに良いでしょう。

「いいね!」 3

おめでとうございます。お知らせいただきありがとうございます。それで見つけられると思っていたのですが、見つかってよかったです。

「いいね!」 3