反向代理 X-Forwarded-For

我最近将论坛迁移到了一个性能更强的主机,并正在努力实现高可用性。

在反向代理中,我添加了 Forward Proto 和 For 头,但 Discourse 上的 nginx 配置只认可了 Proto。

我不得不在 server 下添加以下内容:

set_real_ip_from loadbalancerip;
real_ip_header X-Forwarded-For;

Discourse 是否有环境变量可以添加这些设置?
或者是否可以在 app.yml 中添加某个参数来实现?

我想这正是您在寻找的内容:

不,本指南介绍如何配置一个在容器和宿主机之间共享的 nginx socket。

我正在尝试寻找一种声明式的方法,以便在容器重建后,将以下内容包含到 nginx 配置中:

set_real_ip_from loadbalancerip;
real_ip_header X-Forwarded-For;

您是想将其添加到容器的内部 Nginx 中吗?我认为这没有必要,因为默认情况下已经添加了:

需要这一行才能正常工作。
如果没有它,所有请求的 IP 仍然是负载均衡器的 IP。
我之所以知道,是因为我的 Discourse 因为 429 错误而宕机了。

如果还不清楚,这是我的基础设施架构:
用户 > haproxy > discourse

当然,Discourse 内部包含一个 nginx 反向代理。

我已在 haproxy 中包含了转发头,但 Discourse 内部的 nginx 并未尊重 X-Forwarded-For 头。我不得不在我的原始帖子中添加这两行,并重启容器,问题才得以解决。