iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Nginx代理后获取客户端真实IP地址
  • 515
分享到

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

java获取用户真实IP地址nginx获取用户真实IP地址 2023-09-06 10:09:25 515人浏览 安东尼
摘要

1、场景 在项目实际应用中,我们可能会需要获取到用户也就是客户端的真实IP地址,比如记录系统操作日志等情况。 2、使用 通常情况下我们可以使用以下方式来获取IP地址 request.getRemoteAddr() 但是当我们使用Nginx反

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()。

来源地址:https://blog.csdn.net/weixin_45151960/article/details/129688271

--结束END--

本文标题: Nginx代理后获取客户端真实IP地址

本文链接: https://www.lsjlt.com/news/396851.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作