nginx代理tomcat不能获取真实ip地址解决方法
来源:互联网 发布:飞碟数据 编辑:程序博客网 时间:2024/06/05 15:11
本文介绍了nginx服务器代理tomcat系统时,不能获取真实ip地址的解决办法,有需要的朋友参考下。
nginx代理tomcat时,tomcat获取的客户端不是客户端传过来的ip。
原因分析:
nginx作为代理服务器先拦截客户端发来的请求,它再以localhost的身份转发给tomcat去处理。
解决办法:
在nginx配置中的location节点中添加:
复制代码代码示例:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
java中这样获取远程ip地址:
复制代码代码示例:
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
0 0
- nginx代理tomcat不能获取真实ip地址解决方法
- Nginx代理无法获取真实ip地址解决方法
- J2ee获取通过Nginx代理的客户端真实IP地址
- 获取使用nginx代理后的真实IP地址
- Nginx在多层代理下获取真实客户端IP地址
- Nginx反向代理Tomcat日志获取真实IP
- 多层nginx代理tomcat获取客户端真实ip
- nginx 反向代理取真实IP地址
- nginx代理 tomcat获得真实用户IP
- Tomcat获取Nginx反向代理的客户端IP地址
- lighttpd获取nginx代理客户端真实IP
- nginx反向代理,node获取真实IP
- Nginx反向代理获取客户端真实IP
- Nginx反向代理获取客户端真实IP
- Nginx反向代理获取客户端真实IP
- 通过nginx反向代理,Tomcat获取真实的客户端IP而非服务器IP
- nginx转发获取真实客户端IP地址
- nginx下获取客户端真实IP地址
- JSON解析 null处理
- nginx的400错误bad request
- Android Volley 源码解读
- 谈谈SVD和LSA
- 【HTTP】Fiddler(三)- Fiddler命令行和HTTP断点调试
- nginx代理tomcat不能获取真实ip地址解决方法
- 微信,QQ这类IM app怎么做——谈谈Websocket
- 如何在ubantu上安装sqlmap
- C# DataTable删除空行
- redis持久化
- 更改AndroidStudio最小API
- Swift版本变化
- segmentfault提问问答网站
- TTI Codeword, Layer, And Precoding In LTE