Pigeon
1
CentOS 7 に Discourse をインストールする手順に従いました。
メールの設定は正しく行い、テストメールも受信できました。しかし、常に 502 Bad Gateway エラーが発生します。
以前は ssl_stapling の問題がありましたが、完全なチェーン証明書ファイルを含めることで解決しました。
Docker アプリがカスタムポート 25654 でリッスンしていることが確認できます:
0.0.0.0:25654->80/tcp, :::25654->80/tcp
Discourse アプリがリッスンしていないことが原因だと考えられる、以下の nginx エラーが発生しています。
connect() failed (111: Connection refused) while connecting to upstream, client: x.x.x.x, server: xxxx, request: “GET / HTTP/2.0”, upstream: “http://x.x.x.x:25654/”, host: “xxxx”
[MY_DOMAIN].net および discourse.[MY_DOMAIN].net の両方の DNS エントリが正しい IP アドレスを指すように設定しています。
「いいね!」 1
griffin
(Jonathan Griffin)
2
メタ・ディスコース・コミュニティへようこそ 
私はよく Let’s Encrypt Community で SSL 設置の問題を支援しています。気づいたのですが、2 つ目のサーバーブロックに IPv6 の listen 文が欠落しています:
listen [::]:443 ssl http2;
これがなければ、IPv6 トラフィックがどこに到達するか分かりません。

「いいね!」 1
Pigeon
3
ジョナサン、どうもありがとうございます。これにより「接続が拒否されました」という問題が解決しました。
次に、DiscourseのURLにアクセスすると「CentOSへようこそ」ページにリダイレクトされ、以下のエラーログが表示されます。

Discourse doctorではまだ「バージョンが見つかりません」と表示されています。
「いいね!」 1
Pigeon
4
netstat を確認したところ、ポート 25654 に対して tcp と tcp6 の 2 つの docker-proxy プロセスが実行されているようです。他のチュートリアルのスクリーンショットではこのような表示が見られないため、これが問題なのか気になります。
Pigeon
5
CentOS では異なる設定が必要と思われるため、以下のチュートリアルに記載されている Nginx の設定に従いました。
また、MYDOMAIN.net と discourse.MYDOMAIN.net を同じマシン上で Nginx を通じて動作させたいと考えているため、以下のチュートリアルで確認した内容に基づき、app.yml および Nginx 設定にもいくつか追加の変更を加えました。
例えば、WebSocket テンプレートを有効化しています。
しかし、そのチュートリアルのコメントで、「ソケットを使用する場合は、公開されているすべてのポートの記述をコメントアウトする必要がある」という記述を見つけました。一方、最初の設定では「25654:80」というエントリが追加されており、Nginx が 25654 ポートに転送したトラフィックを受信するように設定されていました。
基本的な設定の問題であれば申し訳ありません。ポート転送やソケット、一般的なネットワーク設定については私の得意分野ではありません。
「いいね!」 1
Falco
(Falco)
6
これらは高度な設定です。リバースプロキシの設定や Docker の管理に不慣れな方にとっては、当サイトの唯一公式の Discourse 標準インストール に従うことをお勧めします。これは、新しいサーバーで Discourse だけが Web アプリとして動作していることを前提としています。
「いいね!」 3