如何解决使用nginx获取IP地址都是127.0.0.1 的问题
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍了如何解决使用nginx获取IP地址都是127.0.0.1 的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。获取i
千家信息网最后更新 2025年02月01日如何解决使用nginx获取IP地址都是127.0.0.1 的问题
这篇文章主要介绍了如何解决使用nginx获取IP地址都是127.0.0.1 的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
获取ip工具
import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import javax.servlet.http.HttpServletRequest;/** * IP地址 * * @date 2020年3月6日 下午12:57:02 */@Slf4jpublic class IPUtils { /** * 获取IP地址 * * 使用Nginx等反向代理软件, 则不能通过request.getRemoteAddr()获取IP地址 * 如果使用了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP地址,X-Forwarded-For中第一个非unknown的有效IP字符串,则为真实IP地址 */ public static String getIpAddr(HttpServletRequest request) { String ip = null; try { ip = request.getHeader("x-forwarded-for"); if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (StringUtils.isEmpty(ip) || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); } if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } } catch (Exception e) { log.error("IPUtils ERROR ", e); } //使用代理,则获取第一个IP地址 if(StringUtils.isEmpty(ip) && ip.length() > 15) { if(ip.indexOf(",") > 0) { ip = ip.substring(0, ip.indexOf(",")); } } return ip; } }
如果你使用了nginx 则获取到的ip都会是127.0.0.1
在代理中加入如下配置proxy_set_header x-forwarded-for $remote_addr;
server { listen 80; server_name api.qimen.pro; # 服务器文件上传大小限制 client_max_body_size 10M; location / { proxy_pass http://gymserver; proxy_set_header x-forwarded-for $remote_addr; } }
感谢你能够认真阅读完这篇文章,希望小编分享的"如何解决使用nginx获取IP地址都是127.0.0.1 的问题"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
地址
篇文章
代理
问题
有效
价值
兴趣
同时
大小
字符
字符串
工具
文件
更多
朋友
服务器
知识
编带
而是
行业
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发委托方的权利
以色列计算机软件开发
俄罗斯的网络安全怎么样
简答数据库的用途
cf与服务器断开
软件开发社会实践报告
技术软件开发ppt
幼儿园宣传国家网络安全信息
手机服务器维护中是什么情况
河北第三届大学生网络安全赛
网络式数据库
哪里有好的协同软件开发
燃烧远征服务器查询
网络技术学校排行榜
中山安卓软件开发
永城租房软件开发
地平线4nat开放服务器已连接
表格怎样交换行数据库
杭州学习软件开发怎样收费
苹果手机开不起数据库
软件开发公司内部流程
大学生网络安全实践活动报告
软件开发转rams
阴阳师提示游戏服务器分支
数据库原理及应用案例教程答案
黔西南服务器代理商
政府安全购买服务器
网络安全架构+书籍推荐
翻译数据库不更新
北京工控软件开发费用是多少