Eviepayne
(vladtheimplier)
1
最近、フォーラムをより高性能なホストに移行し、高可用性の実現に取り組んでいます。
リバースプロキシで Forward Proto ヘッダーと For ヘッダーを追加しましたが、Discourse 側の nginx 設定では Proto しか反映されませんでした。
そのため、server 節の下に以下を追加する必要がありました。
set_real_ip_from loadbalancerip;
real_ip_header X-Forwarded-For;
これらを追加する Discourse の環境変数はありますか?
あるいは、app.yml に追加できる引数はありますか?
Eviepayne
(vladtheimplier)
3
いいえ、このガイドはコンテナとホスト間で共有される nginx ソケットのセットアップ方法について説明しています。
コンテナの再構築後に nginx 設定に以下を宣言的に含める方法を探しています。
set_real_ip_from loadbalancerip;
real_ip_header X-Forwarded-For;
コンテナ内の nginx にこれを追加しようとしているのですか?デフォルトで追加されているため、不要だと考えられます:
Eviepayne
(vladtheimplier)
5
これを動作させるにはこの行が必要です。
これがなければ、すべてのリクエストは依然としてロードバランサーの IP として表示されます。
私の Discourse が 429 エラーでダウンしたため、これは確信しています。
不明な点があれば、私のインフラは以下の通りです:
ユーザー > haproxy > discourse
もちろん、Discourse には nginx のリバースプロキシが含まれています。
haproxy で転送ヘッダーを含めましたが、Discourse 内部の nginx が「転送元(forwarded for)」を無視していました。OP で 2 行を追加し、コンテナを再起動することで動作するようにしました。