一、需求场景
业务需求中会有获取客户端 IP 的情况,可以通过 request 方法获取到。
二、问题排查
当接收到 request 的请求 IP 后,获取的都是服务器的地址,导致不能区分出请求来源。
但是当请求通过 NGINX 道理后只能获取到代理服务器的 IP ,不能获取到真实 IP。
三、解决方案
在 nginx.conf 中加入一行配置:
proxy_set_header X-Real-IP $remote_addr; # 请求的真实 IP 地址
在后端代码中通过 X-Real-IP 获取 IP:
String realIp = request.getHeader("X-Real-IP");