Discourse と Cloudflare

このコミュニティでは、Cloudflare の使用について多くの賛否両論があります。問題なくうまく機能するという人もいれば、それを使用すると大変なことになるだろうと警告する人もいます。いずれにしても、これらの情報のほとんどは非常に古く、2 年から 10 年近く前のものです。


個人的には、2022 年に Discourse で Cloudflare を問題なく使用しています。

Brotli 圧縮を使用して、すべてのページと HTML/CSS/JS を完全に最小化/キャッシュしています。個人的な好みとして、パフォーマンスの Cloudflare から /admin のみ除外しました。

Rocket Loader はオフにしなかったのですが、デフォルトでオフになっていました。もう 1 つ行った変更は、ユーザー IP を復元するために app.yml 設定に次を追加したことだけです。

- "templates/cloudflare.template.yml"

また、設定を一切変更する前からサイトは問題なく動作していたことも言及する価値があります。

「いいね!」 7

あなたがやっていることが完全にサポートされていないことを認識している限り、それは問題ありません。

CloudFlareは最適化を調整し続けており、時には問題を引き起こしませんが、他の時にはサイトを機能不全に陥らせます。ほとんどの人にとって、自分のサイトが何も操作していないのに壊れるという考えは、かなり受け入れがたいでしょう。

再構築を見たことがあるなら、ミニフィケーションはすでにDiscourse内で行われていることを知っているでしょう。CloudFlareは、サイトがすでに自身で行っているよりも良くミニファイしません。CFを有効にした場合と無効にした場合でパフォーマンスを測定しましたか?

そして、JavaScriptアプリがブラウザにロードされると、CloudFlareは実際にサイトを遅くしていることを忘れないでください。アプリとサーバー間のすべてのトラフィックは、CloudFlareネットワークを通過する必要があり、ネットワークホップの数が増加し、それに伴ってレイテンシが増加します。

しかし、それがあなたのために機能しているのであれば、それは素晴らしいことです。サポートを求める前に必ず無効にしてください。なぜなら、それは最初(そして最も可能性の高い)の原因だからです。

「いいね!」 10

Cloudflare を Discourse で使用することへの懸念のほとんど(すべてではないにしても)は、何年も前の問題に基づいているという感覚があります。

過去 10 年間で、Cloudflare と Discourse はどちらも大きく進歩しました。

一般的なキャッシュの問題に関する私の経験は豊富であり、初期の頃は Cloudflare が多くのスクリプトを壊していたことは事実ですが、現在はかなりの間、問題なく動作しています。

より積極的なキャッシュツールの中には、確かに問題を壊し、うまく連携させるために多くの最適化が必要なものがあります。その一般的な考え方は依然として当てはまります。

しかし、Cloudflare が Discourse によってサポートされていないという声明は、まだ正確であると確信していますか? Discourse には、Cloudflare を処理するためのメカニズムが組み込まれています。

とにかく、いいえ、https://gtmetrix.com/ で変更前後のテストは行いませんでしたが、私にとっては多少無関係です。なぜなら、速度だけでなく、Cloudflare を使用する他の理由があるからです。そのため、速度が劇的に(または認識できるほど)低下しない限り、いずれにしても使用していました。

最終的な考え:はい、CDN/キャッシュ/ミニフィケーションなどのツールを使用する場合、特に経験が浅い場合は、何かが壊れる可能性があります。これは、どのように構築されているかに関係なく、すべての Web サイトに当てはまります。しかし、Cloudflare がすべての Discourse サイトに大損害を与えることがほぼ保証されているという考えは、時代遅れの情報のようで、広め続ける必要はありません。

「いいね!」 2

CloudFlare テンプレートは新しいものではなく、ソースを確認すれば、その唯一の目的は IP 範囲を取得し、nginx を変更して、プロキシであるオレンジ色のクラウドによって実際のクライアントアドレスが隠されている CF-Connecting-IP を true のクライアントアドレスとして認識させることであることがわかります。これは新しいものではなく、少なくとも 7 年前から存在しています。Cloudflare を使用してサーバーの場所を隠したり、アップロード用の安価な CDN として機能させたりすることはできますが、どちらの場合もパフォーマンス機能をすべて無効にし、ページルールを使用してアップロードフォルダのキャッシュを有効にすることをお勧めします。

GTMetrix を介したテストでどのようなメリットが得られますか? それを引用するには、Discourse の仕組みについて根本的に誤解していると思います。Discourse はウェブサイトではなく、JavaScript アプリケーションです。サイトをナビゲートしても、フラットな HTML ページがブラウザに配信されるわけではありません。ブラウザにロードされる JavaScript アプリはサーバーと直接通信するため、特定のページ要素がクリック間で再読み込みされないように見えます。そのアプリケーションのスムーズさは、サーバーリソースとクライアントとサーバー間の遅延によってのみ決まります。CloudFlare は Discourse インスタンスを高速化することはできず、2 つのシステム間に存在することで遅延が増加します。

上記は感覚ではなく、長年の経験に基づいています。Discourse は Cloudflare と定期的に問題を抱えています。サーバー IP を隠したり、アップロードのデータ転送量をわずかに節約したりすること以外に、Cloudflare が Discourse サイトを高速化できることは何もありません。

「いいね!」 5

「CloudFlareテンプレートは新しいものではなく、ソースを確認すれば、その唯一の目的はIP範囲を取得し、nginxを変更して、CF-Connecting-IPを真のクライアントアドレスとして認識させることであることがわかります。これは、オレンジ色のクラウドが提供するプロキシによって隠されているためです。これは新しいものではなく、少なくとも7年前から存在しています。Cloudflareを使用してサーバーの場所を隠したり、アップロード用の安価なCDNとして機能させたりすることはできますが、どちらの場合も、パフォーマンス機能をすべて無効にし、ページルールを使用してアップロードフォルダのキャッシュを有効にすることをお勧めします。

さて、私の言いたかったのは、もしCloudflareがサポートされていなかったら、そもそも公式にサポートを追加しようとはしないだろうということです。また、それを使用する方法に関する公式チュートリアルも存在しないでしょう。確かに、場合によってはX、Y、Zの理由で使用しないことを推奨するかもしれませんが、それは完全にサポートされていないこととは異なります。:skull_and_crossbones:

GTMetrix経由でテストすることにどのような利点があるのでしょうか?Discourseの仕組みについて根本的に誤解していると思います。Discourseはウェブサイトではなく、Javascriptアプリケーションです。サイトをナビゲートしても、フラットなHTMLページがブラウザに配信されるわけではありません。ブラウザにロードされるJavascriptアプリケーションはサーバーと直接通信するため、特定のページ要素がクリック間で再読み込みされないように見えます。そのアプリケーションのスムーズさは、サーバーリソースとクライアントとサーバー間の遅延によってのみ決まります。CloudFlareはDiscourseインスタンスを高速化することはできず、2つのシステム間に存在することで遅延が増加します。

Discourseがウェブサイトではないことは理解しています。それは、他のプラットフォーム/ソフトウェア/CMSと同様に、コンテンツを配信するためのプラットフォームです。もちろん、Cloudflareはサーバーレベルの何も影響を与えることはできません。これは、特にLAMPセットアップでは顕著です。しかし、最終的には、すべてのプラットフォームがクライアントサイドコード(HTML/CSS/JS)を最終的に配信する必要があります。もちろん、GTmetrixはサーバーサイドの速度をスキャンすることはできませんが、セットアップの最終出力についていくつかのことを推測することはできます。つまり、ユーザーがコンテンツの読み込みをどのように体験するかということです。

Cloudflareはウェブサイトをそれほど高速化しません。サーバーサイドの最適化やより良いサーバーリソースほど劇的ではありません。その点では完全に同意します。主な焦点はDNSの最適化です。有料アカウントには、特に画像に関しては、より高度なCDN機能がありますが、有料アカウントを使用したことは一度もありません。人々が最も問題に直面し、助けを求めることになるのは、これらの高度な機能のいずれかではないかと思います。

上記の記述は、感覚ではなく、長年の経験に基づいています。DiscourseはCloudflareで定期的に問題を抱えています。サーバーIPを隠蔽し、アップロードのデータ転送量をわずかに節約することを除けば、CloudflareがDiscourseサイトを高速化できることは何もありません。

しまった。 「感覚」と言ったことで非難されることはわかっていたが、それは単なる比喩だ。私も経験から話している。:stuck_out_tongue_closed_eyes:

Discourseの公式コミュニティのリーダーであるあなたが、明らかにDiscourseに関するより多くの経験を持ち、Cloudflareによって引き起こされるあらゆる種類の奇妙な問題を見てきたことは否定しません。

Cloudflare/Discourseのすべてのニュアンスについて深く掘り下げることはさておき、私はまだ私の主なポイントを主張します。それは、Cloudflareがこのフォーラムの一般的な見解よりも恐ろしいものではないということです。

とはいえ、コミュニティを管理すること、そして明らかに誰もが開発者でも技術に精通しているわけでもないことも理解しています。その意味で、Discourseが壊れていると思っている人々で溢れることが、単にCloudflareやそれに類するものだった場合、どれほど迷惑になるかは理解できます。

「いいね!」 3

それがポイントです。「サポート対象外」は「不可能」を意味するのではなく、「頑張って」という意味です。「バグがある」という質問に対する頻繁な回答は、「Cloudflareをオフにすると消えますか?」です。

スピードアップしたい場合は、実際のCDNを使用してください。 - - DiscourseでCDNを有効にする

「いいね!」 6

あるいは、完全に無料のオプションが必要な場合や、とにかくCloudflareを使用したい場合は、問題なく使用できます。

あなたは10年近く前の推奨事項を引用しています。状況は変化します。2022年に公式開発者の誰かがこれについて意見を述べるのを見てみたいです。おそらく彼は、状況ははるかに安定していると述べ、また、JSをいじらないという推奨事項は、Cloudflareだけでなく、すべてのCDNに対する推奨事項である可能性が高いでしょう。

メンバーにメンションしないでください。彼らが意見を述べたい場合は、そうするでしょう。

「いいね!」 3

???

Discourseの作成者をタグ付けしました。Discourseが2022年にCloudflareに関してどのような立場にあるかについて、一日中議論することができますが、本人の言葉を聞くまでは、断定的な答えというよりは憶測になります。

彼がタグ付けされない限り、誰かが彼の意見を求めていることをどのようにして知ることができるでしょうか。

先週、広告が表示されるべきでない人に広告が表示されるという問題がありましたが、それは明らかにCloudflareの問題でした。まず最初にやるべきことは、それを無効にすることです。ここでサポートを受けている多くの人は全くの初心者なので、できるだけトラブルのないようにすることが目標です。もしそれがあなたにとってうまくいけば、素晴らしいことです。週に20件以上の投稿に返信したい場合は、

しかし、それは真実ではありません。あなたが本物のCDNを使用している場合、DiscourseユーザーはCDNで提供されるべきものにのみそれを使用します。

@JammyDodgerさん、CloudflareのFAQを作成する時期だと思います(以前にも提案しましたが)。JeffさんとSamさんに意見を聞くことができます。

「いいね!」 4

要するに、キャッシュ/結合/最小化は、使用されているソフトウェアやCDNの組み合わせに関係なく、悪名高いほどJavaScriptを壊します。私は他の多くのツール/サービスでこの一般的な問題を見てきました。初心者の場合、ブラウザキャッシュ自体が常に教育の苦痛です。私は以前に大規模なソフトウェアコミュニティを管理してきましたが、同じ古い問題が何度も発生することはよく知っています。

私が疑問に思っているのは、これは本当にCloudflare固有の問題なのか、それともすべての最適化ツールが抱える一般的な問題で、JavaScriptを壊す可能性があり、Cloudflareの人気があるために、この一般的な問題が誤ってCloudflareの問題と混同されているだけなのかということです。その区別は意味がありますか?

いずれにせよ、はい、公式の開発者にこの件について意見を述べてもらい、現在のFAQがあれば非常に役立つでしょう。多くの反対意見がありますが、問題を引き起こそうとしているわけではありません。コミュニティには多くの矛盾があるため、単に2022年の現状を把握しようとしているだけです。

しかし、私や私たちができない場合は、大丈夫です。皆さん、週末を楽しんでください。もうそのかわいそうな:horse:をそっとしておきます。

「いいね!」 2

いいえ、それは真実ではありません。CloudflareとDiscourseの組み合わせで問題が発生するのを非常に頻繁に目にします。

「サポートされている」というものはありません。しかし、あなたが何をしているのかを知らなければ、問題が発生する可能性があり、実際に発生します。たとえあなたが何をしているのかを知っていても、予期せぬ問題が発生する可能性があります。

Cloudflareのパフォーマンス上の利点は、もしあれば、小さいでしょう。Discourseによって提供されるアセットのほとんどは、適切に圧縮されており、不変(つまり、ブラウザによって非常に長い間キャッシュされます)です。他のほとんどのコンテンツは、パーソナライズされたアプリケーションデータであるため、キャッシュできません。

とはいえ、CloudflareはDDoS保護に非常に役立ちます。

「いいね!」 5

ユーザーによって意見が分かれているので、それは歓迎されます :person_shrugging:

「いいね!」 1

Cloudflare の FAQ と、Discourse の設定方法(または設定しない方法)について説明します。これはセルフホストインスタンスにも適用されます。

「いいね!」 6

それは疑っていませんが、私が明らかにしようとしていた区別を見落としていたと思います。問題は実際に具体的にCloudflareなのでしょうか、それともこのような最適化ツールが一般的にJSを簡単に壊してしまうという事実なのでしょうか?そして、ほとんどの人がその人気のためにCloudflareを使用しているだけで、誤った混同を生み出しているのではないでしょうか。

それは、すべてのメールまたはホスティングサービスに固有の問題でGmailやGoDaddyを非難するようなものでしょう。

そして、Cloudflareよりも人気のある別のCDNがあれば、そのサービスについても同様に奇妙なサポートリクエストが多数見られるでしょう。

たとえ同意しなくても、私の言っている意味はわかりますか?

「いいね!」 3

特定の環境を回避する必要があるため、メタユーザーは次のようなことを言っています。

Cloudflareができることは、IPアドレスを隠してアップロードのCDNとして機能することだけです。メリットは最小限です。

そして

Cloudflareのパフォーマンス上のメリットは、もしあれば、わずかでしょう。

「速度設定を有効にしない場合、CloudflareはBunny CDNやStackpath(あるいは「通常の」CDNでも)と比較して何かメリットがありますか?」という質問に対する、明確で簡単な答えはありますか?

現在CDN(Stackpath)の費用を大幅に削減できるBunnyと、私の場合は無料になるCloudflare(ドメインの所有者は私のフォーラムを彼のエンタープライズアカウントに追加できます)の間で、まだ迷っています。

また、技術に詳しくないので、理解できないこともあります。

「いいね!」 2

JSを壊すだけではありません。プロキシ化してポート80にアクセスできなくしたり、LetsEncryptを壊したり、これらのサービスの一部が本来よりも多くキャッシュしたりすることもあります。

これらの「この種の最適化ツール」の中でCloudflareが最大であり、広く普及していて人気があり、無料であるため、ほとんどの議論がそれに集中しています。しかし、はい、あなたの言う通りです。これは、このようなツール全般の問題です。

はい、同意します。

このようなトピックは、特に「問題」のターゲットグループの人々はあまりよく読まない傾向があるため、性質上少し危険です。「薬物やアルコールの乱用の危険性についてのトピックに投稿して、『いや、みんな、それは薬物やアルコールの問題だけじゃないんだ。私は薬物を問題なく使っているし、みんな忘れないで:どんな物質でも使いすぎは危険なんだ』と言っているようなものです。(はい、わかっています。どんな比喩も限界がありますが、思いついた中で最善です)。

そして、私たちはそれがどれほど危険であるかをどれだけ大声で言っても、人々はそれでもそれを使用します。
だからこそ、FAQを作成しました :wink:

「いいね!」 10

新しいFAQガイドは素晴らしいアイデアのように思えます。Communiteqのリンクはあまり堅牢ではありませんでした。

このフォーラムでは、一部の人が一般的なルール「キャッシュレベル:バイパス、パフォーマンスを無効にする」を作成していますが、Cloudflareが画像やCSSをキャッシュすることは許可しています。それが良いことなのか悪いことなのか、公式な回答はまだ見ていません…

Cloudflareを使用しないと言うのではなく、問題のあるユーザーに対応するのではなく、何をすべきで何をすべきでないかを明確にすることが良いかもしれません。そうすれば、将来その投稿への簡単なリンク参照でそれらの質問に答えることができます。

ただの一人の意見です。

「いいね!」 1

@RGJ — ありがとうございます!私の区別が多くの人に見えたり理解されたり、それがどのような違いをもたらすのか理解されたりしないかもしれませんが、私にとっては大きな明快さをもたらします。明確さがなければ非常にイライラします。なぜなら、その最初の確固たる基盤がなければ、特定の主題についてさらに焦点を当て、より深く理解するための道筋がわからないからです。

「いいね!」 1

具体的なコメントがあれば、ぜひお聞かせください。

キャッシュに関しては、「賛成」でも「反対」でもなく、どちらかというと「まあまあ」といったところでしょうか。

「いいね!」 1