この長いサポートスレッドでは多くの初心者向けトピックが扱われていますが、検索上もっとも役立つ結論は3ページ目にあります。Jellyfinサーバーはローカルでは動作し、DuckDNSも名前解決でき、SSL証明書も存在していたにもかかわらず、パブリックドメインにアクセスすると502 Bad Gatewayが返っていました。コミュニティは最終的に、問題を次の3層に分けました。Nginx Proxy ManagerからJellyfinへの接続、TLS設定、そしてポート443の処理を担っているルーターです。
最終的な突破口は、ルーター独自のNASサービスをポート443で無効にしたことでした。その後、HTTPとHTTPSの両方でJellyfinにアクセスできるようになりました。
502エラーは、プロキシがJellyfinに接続できないことを意味していた
コミュニティによるトラブルシューティングでは、まずNginx Proxy Managerのアップストリーム先に焦点が当てられました。Jellyfinの通常のHTTPサービスはポート8096で動作しており、プロキシはJellyfinのオプションのHTTPSポートをアップストリームとして扱うのではなく、HTTP経由でJellyfinコンテナに転送する必要がありました。
現在のJellyfinのガイダンスでも同じモデルが採用されています。JellyfinのNginxリバースプロキシ例では、通常のトラフィックとWebSocketをポート8096のJellyfinに転送しています。
プロキシとJellyfinには、到達可能なDocker経路が必要
ある段階ではコンテナ名を使っても機能しなかったため、コミュニティの協力者はプロキシの接続先をJellyfinのDocker内部アドレスに変更しました。これにより、HTTP経路が機能し始めました。
コンテナの変動する内部IPを使う方法は、両方のサービスを、サービス名による安定した名前解決が可能な、管理された共有Dockerネットワークに配置する方法ほど堅牢ではありません。元のスレッドに記録されているのは、その環境で機能した方法であり、すべてのサーバーに適した理想的なCompose設計ではありません。
SSLを追加する前に、HTTPルーティングを修正する
プロキシがまだJellyfinに接続できていない状態でTLSオプションを変更していたことが、大きな混乱の原因でした。コミュニティでは、プロキシホストから一時的にSSLを削除し、まず通常のHTTPルーティングを確認してから、証明書を再設定してHTTPSへのリダイレクトを有効にする手順が取られました。
このトラブルシューティングの順序は、特定のIPアドレスをそのままコピーするよりも重要です。まずアップストリームへのルーティングを確認し、その後でTLSを診断します。
ルーターがポート443を使用していた
HTTPでようやくJellyfinを開けるようになった後、HTTPSを再び有効にすると、ユーザーはルーターのログインページに移動しました。これはスレッド内でもっとも強い手がかりでした。外部からのポート443への接続が、Nginx Proxy Managerへ転送されるのではなく、ルーター独自のNAS/管理機能によって処理されていたのです。
ユーザーがルーター内部のNASサービスをポート443で無効にしたところ、HTTPSが機能することを確認できました。
リモートHTTPSが機能しても、ローカルアプリの検出が保証されるわけではない
その後、スレッドではRokuやスマートフォンのクライアントについても検討されました。パブリックドメイン経由のブラウザーアクセスは機能しましたが、ローカルの自動検出とヘアピン/NATループバックの動作には一貫性がありませんでした。最終的にコミュニティは、Roku向けの実用的な回避策としてDLNAを使用しました。
この後続の問題は、解決済みの502/HTTPS経路と混同しないでください。リモートのリバースプロキシルーティングと、ローカルデバイスの検出は別々のネットワーク動作です。
これはIceWhaleのセキュリティ手順ではなく、コミュニティによるネットワーク支援だった
詳細なリバースプロキシの手順は、コミュニティ参加者から提供されたものです。Jellyfinをドメイン経由で公開するには、ルーター、TLS、認証、アップデートについて慎重に運用する必要があります。ポート443をリバースプロキシへ転送したからといって、関係のないZimaOS管理サービスまで公開しないでください。
JellyfinとNPMに関するよくある質問
502 Bad Gatewayの原因は何でしたか?
Nginx Proxy Managerが当初、Jellyfinのアップストリームに正しく接続できていませんでした。ルーティングを修正すると、JellyfinはHTTP経由で読み込めるようになりました。
なぜHTTPSでルーターのログインページが開いたのですか?
ルーター自身がポート443を使用していたためです。ルーターのそのサービスを無効にするか別のポートへ移動すると、ポート443がNginx Proxy Managerへ到達するようになります。
NPMはJellyfinへ内部的にHTTPとHTTPSのどちらでプロキシすべきですか?
このスレッドで成功した構成と、現在のJellyfinのNginx例では、ポート8096のJellyfinサービスへHTTPで接続し、TLSはリバースプロキシで終端します。
リモートHTTPSが機能すれば、JellyfinはRokuで自動検出されますか?
いいえ。クライアントの検出、Wi-Fiの分離、Dockerネットワーク、NATループバックは、それぞれ別の問題です。
