在设置自己的 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