前言
在我的博客中,使用了Nginx作为反向代理,但是这就导致在Tomcat中获取客户端IP的值为127.0.0.1,由于后续需要查找IP所在地,进行数据统计,所以这个必须要解决。
解决方案
在这里,主要使用proxy_set_header设置Tomcat接收到的header信息。
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcatserver ;
}
HTTP头X-Real-IP表示客户端真实的IP。X-Forwarded-For和X-Real-IP类似,但它在多层代理时会包含真实客户端及中间每个代理服务器的IP。
然后我们在请求中获取x-real-ip值即可。
@GetMapping("")
public R index(HttpServletRequest request){