おっと、なるほど。これは決定的な手がかりで、別の問題を示唆していますね。
ログに avatar_proxy が表示されるのは、通常、Discourse が Cloudflare R2 CDN から直接アバターを提供することを拒否していることを意味します。代わりに、Discourse はリクエストを積極的に傍受し、R2 から画像をローカルサーバーの /tmp フォルダにダウンロードしてから、Ruby を使ってブラウザに画像を提供しています。つまり、CDN が完全にバイパスされており、これが3秒の遅延の原因だと考えられます。サーバーがリクエストのたびに手動でファイルをフェッチして読み込んでいるのでしょう:grimacing:
Discourse はごく限られた特定の状況でのみ avatar_proxy を使用し、通常は外部 URL を隠すためのプライバシーまたはセキュリティ設定が原因です。
管理画面の「サイト設定」で以下の設定を確認してください。
「外部システムアバターの URL」を探してください。もしそのボックスに何か入力されている場合(例:/letter_avatar_proxy/v4/... など)、空になるように削除してください。これで、デフォルトの文字アバターがプロキシされるのを防げます。また、「アップロードされたアバターを許可するグループ」も確認し、TL_0 と表示されているか確認してください。
DISCOURSE_S3_CDN_URL も再確認し、末尾にスラッシュがないか、タイプミスがないか確認してください。
カスタムアバターの再マッピング:
データベースには、新しい CDN URL の代わりに生きた R2 バケット URL が残っている可能性が高いです。これらが一致しないため、セキュリティ上の理由からフォラムがそれらをプロキシしているのでしょう。
Rails コンソールで、Discourse が何と戦っているかを確認してください。
./launcher enter app
rails c
アバターの読み込みが遅いユーザー名を選んでください。
u = User.find_by_username("the_selected_username")
u.user_avatar.custom_upload.url
出力に生きたバケット URL が返ってきた場合、以前の再マッピングがすべてを捕捉できていません(サブドメインやスキーマを見落としている可能性があります)。
修正するには、サーバーに SSH で接続し、コンテナに戻ってください(Rails ではなく)(./launcher enter app)、そして再マッピングツールを再度実行して、生 URL を CDN URL に置き換えます(またかよ、という感じですが):
discourse remap "https://<your-raw-cloudflare-url>.r2.cloudflarestorage.com" "https://cdn.your-domain.com"
念のため、2 回目は https:// の代わりに // を使用して実行してください。
余談ですが、好奇心から伺いたいのですが、どのようなホスティングサービスをお使いですか?私もあなたとほぼ同じ構成ですが、この問題はまだ経験していません。そのため、あなたの構成にも興味があり、何かしらの方法で再現を試みたいと考えています。