Enable a CDN for your Discourse

So files will not synchronise with my system, cloudfront just cache them. Am i true?

「いいね!」 3

Yes. That is correct. The CDN gets from your site just the assets that are requested of it.

Discourse will push to S3 static assets (like css and javascript) as well I uploads.

「いいね!」 4

Is it possible to use cloudflare rules to cache static assets like css and javascript?

「いいね!」 2

Yes, we use it that way and it works well. Just be very careful to disable any javascript optimizations. You can see our setup here:

「いいね!」 4

Thanks for the response.

I have already added the second and third rule but I didn’t get the first rule. What’s the need for 301 redirect??

「いいね!」 2

You don’t need it; it’s in the description.

「いいね!」 3

Thanks for the response. What about the static assets like css and javascripts? Any rule possible for css and javascript??

「いいね!」 2

I didn’t test that. I’m not sure that would work. At the very least you’d have to clear your Cloudflare cache after every rebuild.

「いいね!」 2

It’s okay with me to clear the cache after every rebuild. What else would possibly go wrong if I make a rule to cache everything in https://myforum.com/assets/ ? Will this anyway affect user login? If you give a nod, I will test it for a week and report. I still have one unused rule.

「いいね!」 2

Just to clarify, is it correct we do not use this field (as well as CDN URL) if we are using cloudflare CDN?

I have setup cloudflare.template in app.yml as per docs.

Is any further config needed if using 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