Nginx代理后如何获取客户端真实IP地址

2023-12-01 0 407
目录
  • 1、场景
  • 2、使用
  • 3、解决
  • 4、解释
  • 总结

1、场景

在项目实际应用中,我们可能会需要获取到用户也就是客户端的真实IP地址,比如记录系统操作日志等情况。

2、使用

通常情况下我们可以使用以下方式来获取IP地址

request.getRemoteAddr()

但是当我们使用Nginx反向代理项目地址后,使用以上方法只能获取到Nginx服务器的IP地址,并不是客户端的IP地址。

3、解决

解决方法很简单,同样也是在Nginx中进行配置,然后在Java中获取即可。

首先在nginx.conf配置中添加一行即可:

proxy_set_header X-Real-IP $remote_addr;

添加位置如下:

Nginx代理后如何获取客户端真实IP地址

可以看到我这里还添加了其他的proxy_set_header 配置,后面都可以自行打印看下效果。

接下来就是在程序中获取真实IP地址了,使用以下代码即可获取到:

String realIP = request.getHeader(\”X-Real-IP\”);

注意:getHeader()中的参数名就是nginx.conf中配置的名字

Nginx代理后如何获取客户端真实IP地址

4、解释

一个请求肯定是可以分为请求头和请求体的,而我们客户端的IP地址信息一般都是存储在请求头里的。而proxy_set_header 语法就是允许重新定义或者添加发往后端服务器的请求头,所以在 java端,需要获取 proxy_set_header 的参数时,需要使用 request.getHeader()。

总结

到此这篇关于Nginx代理后如何获取客户端真实IP地址的文章就介绍到这了,更多相关Nginx获取客户端真实IP内容请搜索悠久资源以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Nginx服务器 Nginx代理后如何获取客户端真实IP地址 https://www.u-9.cn/server/nginx/7876.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务