こんにちは。単一のマシン上で、Nginx を使用したリバースプロキシマネージャーで Discourse のセットアップを試みています。ボックス上のデフォルトポートを使用して、すべて私の DNS 経由でアクセスできますが、SSL を強制してサブドメイン経由でトラフィックをルーティングするようにリバースプロキシを設定すると、まったく機能しません。502 エラーが発生します。複数のコンテナを実行しています。プロキシマネージャーは分離されており、Discourse は別のコンテナで実行されています。見つけられるほぼすべてのガイドを見ましたが、何も機能しません。2025 年にはこれを正常に実行する方法があるはずです!プロキシマネージャーで 1 つのサイトを実行しており、すべて問題ありません。プロキシマネージャーが Discourse コンテナにアクセスできるようにするために、プロキシマネージャーがデフォルトで使用するネットワークである FPM ネットワークを Discourse コンテナに引き渡す必要がありますか?もしそうなら、どこでそれを設定すればよいですか?情報が見つかりません。人々はそれをセットアップに入れると言っていますが、正確な場所はわかりません。?セットアップを変更したくありません。ポートを公開せず、プロキシマネージャーにすべて任せるようにというガイドを見ました。それも行いました。Discourse/templates ディレクトリで web.socketed templates.yml を使用しようとするガイドを見ましたが、それも機能しませんでした。ポートを公開したりしなかったりして、Discourse でこれを機能させている人を見ました。ここでは何も一貫性がありません。何が機能し、最近は何がうまく機能しますか。覚えておいてください。私は 1 つのボックスからしか実行していません。
「いいね!」 1
プロキシマネージャーは完璧に機能しており、502エラーはディスコースの設定が正しくないために発生していると推測します。
YAMLファイルでLet’s EncryptとSSLのテンプレートをコメントアウトしましたか?
「いいね!」 2
朗報です。今のところ何も「壊れて」いないようです。あの502エラーは、ほぼ間違いなく初回起動時の競合でした。NginxがUnicornの準備ができる前に/srv/statusを試したのです。ログには次のように表示されています。
unicorn: run
- Rails が起動しました

- Nginx エラー 17:34:11 「接続拒否」(Unicorn が完了する前に発生した可能性が高い)
これをすぐに解決しましょう。
1) ステータスを再度試してください (ホスト → app2)
curl -sSI http://127.0.0.1:8002/srv/status
- それでも 502 が表示される場合は、app2 で Nginx を再起動し、コンテナ内からテストしてください。
docker exec -it app2 bash -lc 'sv restart nginx & && sleep 2 && curl -sSI http://127.0.0.1/srv/status'
curl -sSI http://127.0.0.1:8002/srv/status
HTTP/1.1 200 OK が表示されるはずです。
動作するようになりました。2つのDockerコンテナで実行しているため、互いに通信できるようにネットワーク経由でアクセスを許可する必要がありました。Discourseは内部Dockerポートで実行されているため、ポートは公開されていません。さらに安全です。
Jonnyboy!iPhoneは最高です!
「いいね!」 1
それがAIがあなたに伝えたことですか。うまくいきましたか?
「いいね!」 1
はい、うまくいきました。その後、以下のトピックで結果を発表しました。