Oneboxが5MB超の動画で失敗:サーバーが206 Partial Contentの代わりに200 OKを返す

皆さん、こんにちは。

Discourse インスタンス(標準の Docker インストール)で、5MB を超える動画を投稿すると Onebox プレビューが生成されないという特定の問題に直面しています。同じ動画リンクは、他の Discourse サイトでは完全に機能します。

問題点:
動画リンク(例:5.1MB の .webm ファイル)を投稿すると、Onebox は失敗します。この問題を、Range リクエストのネゴシエーションの失敗に絞り込みました。

Rails コンソールからのデバッグ結果:

  • 手動 Ruby テスト(成功): 標準の Net::HTTP を使用し、Range: bytes=0-10 ヘッダーを手動で設定すると、ソースサーバーから 206 Partial Content を正常に取得できます。
  • Discourse システムテスト(失敗): Discourse が FinalDestination.new(url).get を介して同じ URL をフェッチしようとすると、206 の代わりに 200 OK (Net::HTTPOK) を受信します。その結果、ファイル全体をダウンロードしようとし、5MB の MAX_REQUEST_SIZE_BYTES 制限に達し、Onebox は「サイズが大きすぎる」エラーで失敗します。

すでにテストした設定ですが、問題は解決しませんでした:

  1. onebox_user_agent にブラウザライクな文字列を設定した。
  2. ソースドメインを force_custom_user_agent_hosts に追加した。
  3. サーバーにグローバルプロキシが設定されていないことを確認した(env | grep -i proxy は空である)。
  4. 他の Discourse インスタンスで同じ URL をテストしたが、それらは完璧に Onebox された。

質問:
なぜ、同じネットワーク上で、全く同じ URL を指しているにもかかわらず、ある Discourse インスタンスだけが Range リクエスト (206) のネゴシエーションに失敗するのでしょうか?

Range ヘッダーが削除されたり、リモートサーバーが完全な 200 レスポンスにフォールバックしたりする原因となる、特定の内部設定、セキュリティミドルウェア、または FinalDestination のロジックはありますか?

何か洞察や次に確認すべき点のヒントをいただけると大変助かります!