proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;

风控日志里所有请求的客户端 IP 都是 10.0.3.11,全国各地用户在同一分钟变成同一个地址,IP 黑名单和限流全部失效。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:网关用 proxy_set_header 直接赋值,把客户端原来的 X-Forwarded-For 整条替换成自己的地址,下游再取就只剩一个代理 IP 了,真实来源的信息彻底丢掉,风控就失效了。

「X-Forwarded-For 真实IP」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。监控和日志的时间要对上,时区不一致会多绕很大一圈。

临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。

处理上按这个顺序:改成追加模式,把客户端原来的链路完整保留下来;最外层代理用 remote_addr 起头,后面的每一层只做追加动作;应用侧只取第一段地址,不要拿整串字符串去做判断。

确认没问题再收工,应用日志里能取到公网客户端 IP,多代理时第一段就是真实来源。

作者 9823189