Nginx 设置前先清除 X-Forwarded-For

Nginx 设置前先清除 X-Forwarded-For

在设置自己的 X-Forwarded-For 标头之前,我可以在 nginx 配置中使用什么来清除所有现有的 X-Forwarded-For 标头?我目前正在使用 Nginx 终止 SSL,然后再将流量传递到 HAProxy 进行负载平衡。

现在,我有:

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

但是,这会将新 IP 地址附加到任何现有 X-Forwarded-For IP 地址的末尾。有没有办法只保留 Nginx 看到的地址?

答案1

只是不要使用$proxy_add_x_forwarded_for——它存在的全部目的就是执行附加行为。

反而:

proxy_set_header X-Forwarded-For $remote_addr;

答案2

如果仍有人遇到此问题,您可以使用“more_clear_input_headers”来仅保留 Nginx 看到的最后一跳的地址。

more_clear_input_headers "X-Forwarded-For";

参见 openresty 的文档: https://github.com/openresty/headers-more-nginx-module#more_clear_input_headers

相关内容