Nginx代理后如何获取客户端真实IP地址
1、场景
在项目实际应用中,我们可能会需要获取到用户也就是客户端的真实IP地址,比如记录系统操作日志等情况。
2、使用
通常情况下我们可以使用以下方式来获取IP地址
request.getRemoteAddr()
但是当我们使用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中的正则表达式及location和rewrite总结
rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标记位实现URL重写以及重定向,这篇文章主要介绍了nginx中的正则表达式及location和rewrite总结,需要的朋友可以参考下2023-12-12
Nginx 安装笔记(含PHP支持、虚拟主机、反向代理负载均衡)
Nginx安装简记(含PHP支持、虚拟主机、反向代理负载均衡) Nginx,据说高性能和稳定性比Apache还牛,并发连接处理能力强,低系统资源消耗。目前已有250多万web站点在使用2009-10-10
关于nginx报错405 not allowed解决方法总结
这篇文章主要给大家介绍了关于nginx报错405 not allowed解决方法的相关资料,nginx遇到post请求静态文件会得到405错误,文中通过代码介绍的非常详细,也给出了推荐方法,需要的朋友可以参考下2023-10-10
web部署到nginx以后js,css等静态文件加载不正常的解决过程
在Ubuntu中配置Web页面时,JS和CSS文件虽可获取但加载失败,可能因路径错误、服务器配置不当、权限限制或缓存问题导致页面布局异常,需检查文件路径、服务器设置、MIME类型及浏览器控制台错误信息以排查原因2025-09-09


最新评论