「Cloudflare Automatic HTTPS Rewrites」という名前から誤解される可能性があると想像します。Cloudflareには2つの機能があります。
- 「Always Use HTTPS」は、Discourseの
force_httpsと同様に、すべての通常のHTTPリクエストをHTTPSにリダイレクトします。どちらも以前は有効になっていましたが、HTTPSが問題や、Discourseの無限ロードページ、ハングするcurlリクエストに関係しているかどうかをテストするために両方を無効にしました。これは完全に機能し、HTTPSリクエストの問題も解決しましたが、それは「Cloudflare Automatic HTTPS Rewrites」を同時に無効にしたためです。 - 「Cloudflare Automatic HTTPS Rewrites」は、HTML、CSS、JavaScriptドキュメントを変更して、CloudflareがホストがHTTPS経由で到達可能であると判断した(HSTSプリロードリストなどに基づく)すべての埋め込みHTTP URLをHTTPSバリアントに置き換えます。これは、混合コンテンツの警告を回避するためです。
Cloudflare、ホストプロキシ、またはDiscourseでHTTPSを強制するかどうかは関係ありません。問題を引き起こしたのは、ホストプロキシのmod_sedフィルターとCloudflareによる埋め込みHTTP編集の組み合わせでした。つまり、ドキュメントの内容がフィルターを通過する2つの段階がありました。問題は、実際の内容が変更されたことではありません(私たちのサイトには混合コンテンツはありません。「Cloudflare Automatic HTTPS Rewrites」はドキュメント本文を実際には変更しません)、おそらくチャンク、バッファ、またはタイミングに関連していました。