Nginx代理后如何获取客户端真实IP地址
更新时间:2023年05月27日 10:27:35 作者:想养一只!
在实际应用中我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,下面这篇文章主要给大家介绍了关于Nginx代理后如何获取客户端真实IP地址的相关资料,需要的朋友可以参考下
1、场景
在项目实际应用中,我们可能会需要获取到用户也就是客户端的真实IP地址,比如记录系统操作日志等情况。
2、使用
通常情况下我们可以使用以下方式来获取IP地址
但是当我们使用Nginx反向代理项目地址后,使用以上方法只能获取到Nginx服务器的IP地址,并不是客户端的IP地址。
3、解决
解决方法很简单,同样也是在Nginx中进行配置,然后在Java中获取即可。
首先在nginx.conf配置中添加一行即可:
proxy_set_header X-Real-IP $remote_addr;
添加位置如下:

可以看到我这里还添加了其他的 proxy_set_header 配置,后面都可以自行打印看下效果。
接下来就是在程序中获取真实IP地址了,使用以下代码即可获取到:
String realIP = request.getHeader("X-Real-IP");
注意:getHeader()中的参数名就是nginx.conf中配置的名字

4、解释
一个请求肯定是可以分为请求头和请求体的,而我们客户端的IP地址信息一般都是存储在请求头里的。而 proxy_set_header 语法就是允许重新定义或者添加发往后端服务器的请求头,所以在 java端,需要获取 proxy_set_header 的参数时,需要使用 request.getHeader()。
总结
到此这篇关于Nginx代理后如何获取客户端真实IP地址的文章就介绍到这了,更多相关Nginx获取客户端真实IP内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Nginx访问日志切割的3种实现方法
这篇文章主要给大家介绍了关于Nginx访问日志切割的3种实现方法,随着访问量的增长,日志文件会越来越大,时间长既会影响访问的速度,也会占用一部分磁盘空间,这时候就需要日志切割了,需要的朋友可以参考下
2023-08-08
一段万能的nginx接口实现反向代理配置
这篇文章主要介绍了一段万能的nginx接口实现反向代理配置,详细的介绍了什么是反向代理及其接口反向代理的实现,非常具有实用价值,需要的朋友可以参考下
2018-10-10
Mac中使用Nginx实现80端口转发8080端口
端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,其使一个外部用户从外部经过一个被激活的NAT路由器到达一个在私有内部IP地址(局域网内部)上的一个端口
2017-09-09
Nginx重写功能和反向代理的用法详解
这篇文章主要介绍了Nginx重写功能和反向代理,文中通过代码示例和图文给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
2024-02-02
Nginx中常见header配置及修改
在nginx中,经常需要因为各种原因,修改header,本文就来介绍一下header配置及修改,具有一定的参考价值,感兴趣的可以了解一下
2023-10-10
基于Nginx的Mencached缓存配置详解
这篇文章主要介绍了基于Nginx的Mencached缓存配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2020-06-06
Nginx反向代理重写URL的实现方案
nginx服务器代理前端项目,并且反代后端服务器,开发时使用没有什么问题,部署后存在同样请求根地址的情况,但是去调用后端接口就会出现报错,最后通过重写url解决问题,所以本文给大家介绍了Nginx反向代理重写URL的实现方案,需要的朋友可以参考下
2025-04-04
最新评论