oldman
(chris)
1
さて、私が直面している状況を大まかに説明します。
ハードウェアサーバーが2台あります。1台目は Unraid を実行しており、2台目は ESXi 上の VM を実行するためのものです。
Unraid サーバーでは Nginx リバースプロキシマネージャーを実行しています。ESXi マシン上には Ubuntu 18.04 の VM があります。インストールを進めると、ポート 80 には接続できているが、ポート 443 には接続できないというメッセージが表示されます。このような構成を実行している方はいますか?
リバースプロキシでは、ドメインを SSL 用に設定し、ポート 80 に指定しています。まだ理解が浅いのですが(これは学習の機会として活用しています)、2 つを連携させて Discourse をインストールし、正常に動作させる方法がわかりません。
ありがとうございます。
更新:解決できました。方向性を示してくれたリンクは以下の通りです。
https://www.digitalocean.com/community/tutorials/how-to-install-discourse-behind-nginx-on-ubuntu-14-04
「いいね!」 1
neounix
(Dark Matter)
2
参考までに、
次のステップとして、プロキシを Docker コンテナ内の Unix ドメインソケットと通信するように変更することを検討してみてください。
この構成はさらに柔軟性を提供します。コンテナの外から中へ記号リンクを張るだけで、ダウンタイムなしで、nginx の再起動も不要に、コンテナ間を簡単に切り替えられるからです。
例(Linux でのみ動作し、macOS では動作しません):
Unix ソケットの場所は、コンテナ内から見て以下のような例です:
/shared/mycool.discourse.sock
コンテナ外から:
ln -sf /var/discourse/shared/socket-only/mycool.discourse.sock /tmp/mycool.discourse.sock
これにより、外部の nginx サーバーを以下の宛先へのリバースプロキシとして設定できます:
/tmp/mycool.discourse.sock
プラグインを追加して再構築する必要があるとしましょう。
/shared/socket-only2 で再構築(単純な yml の変更)し、新しいコンテナに切り替えるには、次のようにします:
ln -sf /var/discourse/shared/socket-only2/mycool.discourse.sock /tmp/mycool.discourse.sock
(または /var/run など、任意の場所に変更することも可能です)
これは非常にスムーズに動作し、コンテナ間を数ミリ秒で切り替えることができます。TCP/IP ドメインソケットの再マッピングのための nginx 再起動も不要です。
私はこれを完全にテスト済みで、問題なくスムーズに動作することを確認しています。
Apache2 でも(ほぼ)動作しますが、Apache2 では記号リンクを使用できず、Apache2 のサイト設定でコンテナへのフルパスを指定する必要があります。そのため、切り替えには Apache2 の再起動が必要です。しかし、あなたは nginx ユーザーなので、コンテナ外での設定は簡単かつスムーズに行えます。