我是靠谱客的博主 帅气石头,这篇文章主要介绍request nginx 透传获取真实的ip,现在分享给大家,希望可以做个参考。

nginx.conf配置:

复制代码
1
2
3
4
5
6
7
location / { proxy_pass http://127.0.0.1:8080/myweb/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }

后端获取方式:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*** * 获取客户端IP地址;这里通过了Nginx获取;X-Real-IP, * @param request * @return */ public static String getClientIP(HttpServletRequest request) { String fromSource = "X-Real-IP"; String ip = request.getHeader("X-Real-IP"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("X-Forwarded-For"); fromSource = "X-Forwarded-For"; } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); fromSource = "Proxy-Client-IP"; } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); fromSource = "WL-Proxy-Client-IP"; } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); fromSource = "request.getRemoteAddr"; } appLog.info("App Client IP: "+ip+", fromSource: "+fromSource); return ip; }

这样就不会一直获取的是服务器的Ip了。

最后

以上就是帅气石头最近收集整理的关于request nginx 透传获取真实的ip的全部内容,更多相关request内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(86)

评论列表共有 0 条评论

立即
投稿
返回
顶部