文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-09-06 10:03

关注

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯