有没有什么方法可以使用 Haproxy 修改标头的功能,以便如果传入连接具有 X-Forwarded-For 标头,那么我可以获取其内容并将其添加到 Haproxy 的 X-Forwarded-For 记录中?
我当前的情况是客户已设置以下内容:
- CloudFlare 建立连接,设置 X-Forwarded-For 并连接到 Haproxy 前端
- 然后,Haproxy 处理此连接并根据收到的连接的真实 IP(CloudFlares IP 地址)设置 X-Forwarded-For
- 服务器接收此请求,并且 X-Forwarded-For 条目包含 CloudFlare 代理的 IP,而不是真正的客户端 IP。
答案1
除非您的最终服务器真的想知道 cloudflare 的 IP 地址是什么,否则如果没有人直接连接到 haproxy,那么只需删除option forwardfor
它即可停止更改 X-Forwarded-For 标头。
如果某些连接不经过 cloudflare,您可以option forwardfor except cloudflareipaddress
仅为直接连接设置 X-Forwarded-For。