コミュニティソリューション

ZimaOSでNginx Proxy Managerの背後にあるJellyfinの502エラー:確認すべき3つのアドレス

Posts 61–80 follow recurring Jellyfin 502 errors, clarify public, LAN, and Docker addresses, and show why proxy routing and case-sensitive backup paths must be diagnosed separately.

長いZimaOSサポートの議論の4ページ目では、最初のリモートアクセス設定に成功した後も、1人のユーザーがJellyfinとNginx Proxy Managerで繰り返し遭遇した障害を追っています。重要なのは、単一の魔法のポートではありません。リバースプロキシの転送先、Jellyfinのポートマッピング、Dockerネットワーク、またはアプリケーションの状態が変わるたびに、502エラーは再発する可能性があります。

このページでは61~80件目の投稿だけを扱います。同じスレッド内の別の箇所で説明されている、以前のDuckDNSと証明書の設定は繰り返しません。

NPMのAPIメッセージとJellyfinの502エラーを分けて考える

ユーザーが最初に見たのは「APIとの通信に失敗しました。NPMは正しく実行されていますか?」というメッセージでした。コミュニティによるログの確認では、Nginx Proxy Manager自体は稼働しており、Let's Encryptの更新も成功していることが分かりました。そのため、一時的なAPIメッセージは、古いブラウザーセッション、またはUIとバックエンド間の一時的な通信中断である可能性があり、パブリック側の502エラーは別個のプロキシからJellyfinへの接続問題として残りました。

Jellyfinの502エラーをトラブルシューティング中のNginx Proxy Managerの状態を示すスマートフォンのスクリーンショット
スクリーンショットは、NPMのインターフェースメッセージと、継続しているバックエンドのルーティング障害を区別するために使用されました。

3種類のアドレスを区別する

アドレスの種類 例としての役割 NPMはこれに転送すべきか?
パブリックWANアドレス DuckDNSによって更新されるISP側のアドレス いいえ
ZimaOSのLANアドレス 次のような安定したホームネットワークアドレス 192.168.1.50 Jellyfinがホストポートを公開している場合
Dockerコンテナのアドレスまたは名前 次のような内部エンドポイント jellyfin:8096 NPMが同じDockerネットワークに到達できる場合のみ

このスレッドでは、コンテナ名、ホストのLANアドレス、内部Dockerアドレスが何度も切り替わっていました。これらは互換的に使えるものではありません。TLSやDNSを変更する前に、サポートされているルートを1つ選び、NPMコンテナからテストしてください。

ポートマッピングを正しい方向で読む

Jellyfinの設定にはホストポートが表示されていました 8097 コンテナポートにマッピング 8096。NPMがZimaOSのLANアドレス経由で接続する場合は、公開されたホストポートを使用する必要があります。NPMが共有Dockerネットワーク上でコンテナ名を使って直接接続する場合は、通常、Jellyfinの内部ポートを使用します。

ホストポート8097とコンテナポート8096を比較しているときに撮影したJellyfinコンテナ設定
スクリーンショットにより、NPMがホストに到達するのか、コンテナネットワークに直接到達するのかによって、正しいポートが異なる理由を説明できました。

NPM内部からの接続リセットは、選択したルートでは有効なJellyfinの応答がまだ得られていないことを示していました。これは、単に両方のコンテナを再起動するよりも有用な証拠です。

段階的な診断順序を使用する

  1. プロキシに触れる前に、Jellyfinをローカルで開いて再生を確認する
  2. Jellyfinコンテナが稼働していることを確認し、保存されているホストポートとコンテナポートのマッピングを確認してください。
  3. 安定したZimaOSのLANアドレスと公開ホストポートの組み合わせ、または共有ネットワーク上のコンテナ名と内部ポートの組み合わせのいずれかを選択してください。
  4. NPM環境から、その正確なエンドポイントをテストしてください。
  5. HTTPルーティングが機能することを確認してからTLSを再び有効にし、公開ドメインをテストしてください。
  6. アプリを編集または再起動した後は、DNSを変更する前にローカルテストとプロキシテストを再度実行してください。

メディアパスの編集で別の障害が発生することがあります

その後、リモートユーザーはJellyfinを閲覧できましたが、メディアを再生できませんでした。所有者がJellyfinのコンテナ設定を変更すると、公開サイトが応答しなくなりました。その後、コミュニティによるログの確認で、Jellyfinは稼働しており、次の場所をスキャンしていることが分かりました。 /Media/Moviesに言及しており、プロキシの転送先に再び注意を向けることになりました。これは、変更を一つずつ記録し、個別にテストすべき理由を示しています。

バックアップ時のLinuxパスでは大文字と小文字が区別されます

設定のバックアップに失敗したのは、コマンドが /DATA/AppData/duckdns一方、実際のディレクトリは /DATA/AppData/DuckDNS。Linuxでは、これらは異なるパスとして扱われます。元のスレッドではコミュニティ作成のアーカイブコマンドが提案されていましたが、IceWhaleが提供したものではないため、ここでは公式バックアップ手順として再掲していません。

DuckDNSフォルダーの大文字と小文字が一致しないZimaOS AppDataバックアップパスを示すターミナルのスクリーンショット
バックアップの失敗は、壊れたアーカイブツールが原因ではなく、AppDataディレクトリ名の大文字と小文字が一致していなかったことが原因でした。

AppDataをアーカイブする前に、ディレクトリ名を正確に一覧表示し、データベースで一貫性のあるスナップショットが必要なアプリケーションを停止してから、アーカイブのコピーを一時的な場所に復元して検証してください。

現在サポートされているリモートアクセス

管理とファイルアクセスについては、現在のZimaOSドキュメントで、ZimaClientのリモートアクセスによる暗号化されたピアツーピアアクセスが案内されています。公開Jellyfinリバースプロキシは、依然として高度なサードパーティ製ワークフローであり、公開するのはメディアサービスだけにして、ZimaOSダッシュボードは公開しないでください。

Jellyfin 502 FAQ

「NPM API failed」と表示されたことは、NPMが停止している証拠ですか?

いいえ。スレッドではNPMのログと証明書の更新は正常でしたが、ブラウザーにはそのメッセージが表示されていました。

NPMではポート8096と8097のどちらを使うべきですか?

コンテナ間の直接ネットワーク接続では内部ポートを使用し、ZimaOSのLANアドレスに転送する場合は公開ホストポートを使用します。

バックアップでは、なぜDuckDNSが存在しないと表示されたのですか?

実際のAppDataフォルダーではDとDNSが大文字でした。Linuxのパスでは大文字と小文字が区別されます。