Discourseへのリバースプロキシ

ここでは、普段とは違うことをしなければならないことを、とても残念に思っています。皆さんも同じように残念に思っていると思いますが、これが私にできる唯一の方法であり、私が所有している他のセルフホスト型アプリがすべて動作する方法でもあります。

ワイルドカードAレコードをネットワーク上の内部IPに向け、そのIPのポート80と443をnginxプロキシマネージャーでエクスポートし、SSL証明書もすべて設定しました。既存のネットワークのほとんどはDockerでセットアップされているため、nginxプロキシマネージャーはDockerネットワークを使用してHTTP経由でプロキシするだけなので、安全に使用できます。

Discourseの場合、discourse.MYDOMAIN.comを別のAレコードの下にある別のローカルIPアドレスに設定し、解決することはできましたが、nginxプロキシマネージャーのLet’s Encryptの設定が機能するのに対し、Discourseの設定は内部IPでは機能しません。

ですから…リバースプロキシしたいのです。nginxプロキシの設定を色々試して、これを機能させようとしています。中間者攻撃については少し心配していますが、nginxプロキシマネージャーのLet’s Encrypt設定が内部設定で機能するのに、Discourseの設定が機能しない理由を突き止めたいと思っています。

きっと方法があるはずです!

(追伸:私が混乱していることは承知しています。具体的な質問をしていただければ、明確に説明できます)

「いいね!」 1

ここで言及されている dns-01 チャレンジ オプションについて調べています。

可能であれば、私の Discourse 設定でこれをどのように行うことができますか?

「いいね!」 1

Nginx Proxy Manager の背後で Discourse を実行することに関するトピックがいくつかあります。基本的に、Discourse がポートにバインドしないように設定し、app.ymllabels: セクションに必要なラベルを追加します。

「いいね!」 2

Nginx Proxy Manager を使用する場合(現在の設定方法であり、Discourse VM 自体に Let’s Encrypt を設定するのではなく)、…

私の場合は別々のマシンなので、Discourse VM のポート 80 にバインドする必要があります。

現在の私の経験では、SSL 設定が Discourse VM の IP アドレスをポート 80 に向けている Nginx Proxy Manager の現在の設定で、Mixed Content エラーが発生しています。

HTTP:// 参照がハードコードされているため、これは削除できないと思いますが…それとも間違っていますか?参照されたラベルフィールドはこれを変更しますか?

hereで言及されているsocketdテンプレートと、hereの高度なタブにあるnginxプロキシマネージャーの設定を試してみます。

有効にする必要がある force_https という設定があります。これは ENV または rails console を介して行うことができます。

また、プロキシで適切な x-forwarded-proto を設定することも忘れないでください。

「いいね!」 2

Unixソケットの設定がうまくいかなかったら、それを試してみます。サポートしてくれた@Falcoと@pfaffmanに感謝します。うまくいく方法がわかったら、また報告します。

Unixソケットの設定ができません…私のDiscourse VMは別のマシンにあります。元の計画に戻ります。フォーラムの他の投稿でforce_httpsを有効にする方法を調べてみます。参考までに、これは私ができないステップです。

実際には、Falco が提案したものがあなたには必要です。

「いいね!」 2

nginx proxy manager で:

proxy_set_header X-Forwarded-Proto $scheme;

force_https を有効にするにはこちら

「いいね!」 2

DISCOURSE_FORCE_HTTPS=true だと思います (env)
または
DISCOURSE_FORCE_HTTPS: true を app.yml の ENV セクションに記述します。

GUIで、前述したように設定できました。

@Falco@pfaffman@Jagster@merefield…皆さんのおかげで、リバースプロキシの設定に成功し、混合コンテンツのエラーはなくなりました。

ディスコースVMのポート80にリバースプロキシを設定し、登録などができるようになった後、GUIでforce_httpsを設定し、nginxプロキシマネージャーの詳細タブにx-forwarded-protoフラグを追加することで解決しました。

「いいね!」 2