如何解决使用nginx获取IP地址都是127.0.0.1 的问题
发表于:2024-11-29 作者:千家信息网编辑
千家信息网最后更新 2024年11月29日,这篇文章主要介绍了如何解决使用nginx获取IP地址都是127.0.0.1 的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。获取i
千家信息网最后更新 2024年11月29日如何解决使用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安全错误
数据库的锁怎样保障安全
数据库结构有哪些
网络技术有限公司结构
谷歌服务器时间设置
成长守护平台网络安全性未知
雷霆之王服务器
nodejs连接数据库增删改查
咸鱼服务器反应慢
山西网络安全非标机箱采购
安卓怎样做苹果软件开发
网络安全公告词
数据库文件用来记录对数据库
重庆巫山生鲜专用软件开发
金华广括网络技术怎么样
服务器穿墙
测量数据库建立心得
数据库 mod
手机无法到服务器
乡镇医院网络安全应急预案
软件开发测评费如何计算
软件开发报告书范本
两个服务器之间拷贝图片快捷方式
数据库结构有哪些
缓存sql数据库
管理百台服务器
hp服务器启动盘
成都软件开发架构师待遇
重庆网络安全法
测绘行业网络安全重要性
如何复制服务器程序及源码
宾馆网络技术