在 HA Proxy 后登录时出现 CSFR 错误

大家好,希望这里是寻求帮助的正确版块。
我最近更换了位于 Discourse 服务器前面的反向代理。
我的服务器上安装了多个 Discourse 实例,并在前面配置了一个反向代理,将不同域名指向对应的 Web 服务器。

两个环境都使用了 HA Proxy,区别在于平台:之前部署在 pfSense 上,现在则是在 OPNsense 上。

反向代理本身运行正常,但一旦尝试登录,就会收到 CSRF 错误,导致无法进行任何操作。

Discourse 的配置没有任何变更,HA Proxy 的配置也是直接复制过来的,理论上应该没问题。
我已经启用了 X-Forwarded-For 和 SSL,但 Discourse 似乎仍然无法获取客户端的真实 IP,只能看到代理服务器的 IP。

这是我在 Reddit 上发布的求助帖:https://www.reddit.com/r/OPNsenseFirewall/comments/l4ltxb/migration_from_pfsense_to_opnsense_ha_proxy/?utm_source=share&utm_medium=web2x&context=3

我不确定这能否解决 CSRF 问题(我认为这与 HTTPS 证书问题有关,但我不太确定),但你之前通过告知容器内的 Nging 要信任哪些地址,实现了转发。你可以在这里搜索 X-forwarded-for,并找到修复该问题的示例。

感谢您的回复。
我已经在论坛上查找过相关信息,但未能找到最新的资料。

确实有一些旧帖提到了在容器内的 nginx 中配置 Real_ip,但我完全不清楚该如何操作。
您是否有推荐的特定指南?

我目前没有找到具体的指南,但我会尽快尝试创建一份。以下是我认为能为你提供 real-ip 部分所需信息的链接:Inconsistent / missing registration & last IP - #13 by pfaffman

您还需要发送 X-Forwarded-Proto 头部。

太感谢了!说实话,我折腾了三天都毫无进展,结果这个问题就这样解决了!

我还添加了 Proto 头文件,也成功了!

顺便提一下,在 Discourse 应用前部署反向代理服务器的示例配置有很多,包括这一个,其中几乎所有配置都涉及“X-Forwarded-Proto”: