获取用户真实ip, 该ip在ng的设置了proxy_set_header x-read-ip, 由于项目中使用nodejs层做转发到java,所以java端获取到的ip是服务器的ip,而不是真实的用户ip,需要将此值放到nodejs请求头透传给java端。
nginx的设置如下:
const XForwardedFor = req.headers['x-forwarded-for'] as string;
const realIp = XForwardedFor ? XForwardedFor.split(',')[0] : '';
const data = await preregistrationSvr.sendShortMessage(
{ phone },
{
headers: {
'x-nmd-ip': realIp,
},
}
);
说明
这里使用x-nmd-ip,不使用x-read-ip(这里注意需要小写,req.headers中获取的都是小写key),是因为ng设置该key值,会覆盖掉我们在node加入的同名key值。



