遇到问题情况是
1.通过natapp 进行域名代理转发到本地
2.本地通过nginx进行转发,由于需要记录用户的操作,所以 需要获取用的真实操作ip,但是死活获取不到,只能获取到本地的127.0.0.1
各种找方法都无果,然后求助公司nginx 大佬,最后发现natapp自身的坑,他会把转发数据进行截取X-Real-IP,会被他进行操作,导致一直获取不到
当然他会自己携带X-Natapp-Ip,当然以上在实际的开发中是不会出现的情况,当时我当时耗费了好久才弄明白,
其实我当时直接用下面的方法,把请求头全部打印出来即可,下面就能打印出所有的请求头信息,包括了natapp的的ip地址(哎,还是自己太菜啊,其实当时有想过可能是他的问题,就是没有法子就证实,
一直以为是nginx的配置的问题,纠结了好久)
以上代码,嵌入到控制器方法中,要求 方法有参为 HttpServletRequest request
//获取所有请求头名称
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String name = headerNames.nextElement();
//根据名称获取请求头的值
String value = request.getHeader(name);
System.out.println(name+"---"+value);
}