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

 更新时间:2023年05月27日 10:27:35   作者:想养一只!  
在实际应用中我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,下面这篇文章主要给大家介绍了关于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配置实例代码

    nginx多location配置实例代码

    公司测试环境使用nginx部署多个前端项目,下面这篇文章主要给大家介绍了关于nginx多location配置的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • nginx启动后,访问报403错误问题及解决

    nginx启动后,访问报403错误问题及解决

    Nginx出现Permission denied错误可能由权限或文件路径问题导致,检查日志发现启动用户为root,需修改nginx.conf的user指令与启动用户一致,并重启服务,同时需确认文件路径是否正确
    2025-09-09
  • nginx中的正则表达式及location和rewrite总结

    nginx中的正则表达式及location和rewrite总结

    rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标记位实现URL重写以及重定向,这篇文章主要介绍了nginx中的正则表达式及location和rewrite总结,需要的朋友可以参考下
    2023-12-12
  • Nginx 安装笔记(含PHP支持、虚拟主机、反向代理负载均衡)

    Nginx 安装笔记(含PHP支持、虚拟主机、反向代理负载均衡)

    Nginx安装简记(含PHP支持、虚拟主机、反向代理负载均衡) Nginx,据说高性能和稳定性比Apache还牛,并发连接处理能力强,低系统资源消耗。目前已有250多万web站点在使用
    2009-10-10
  • nginx日志打印请求头信息示例详解

    nginx日志打印请求头信息示例详解

    这篇文章主要介绍了nginx日志打印请求头信息的相关资料,文章介绍了如何在Nginx中打印请求头中的自定义字段,并解决由于下划线导致的字段无法正确打印的问题,需要的朋友可以参考下
    2024-11-11
  • 关于nginx报错405 not allowed解决方法总结

    关于nginx报错405 not allowed解决方法总结

    这篇文章主要给大家介绍了关于nginx报错405 not allowed解决方法的相关资料,nginx遇到post请求静态文件会得到405错误,文中通过代码介绍的非常详细,也给出了推荐方法,需要的朋友可以参考下
    2023-10-10
  • 一文读懂Ingress-Nginx的实践

    一文读懂Ingress-Nginx的实践

    Ingress-Nginx是Kubernetes中管理HTTP和HTTPS流量的重要工具,本文深入探讨Ingress-Nginx工作原理、配置及最佳实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • nginx配置文件不使用缓存的方法

    nginx配置文件不使用缓存的方法

    使用Nginx作为Web缓存服务器,能有效减少数据传输、节省网络流量、加快响应速度、减轻服务器压力、提高服务端可用性,本文就来介绍一下nginx配置文件不使用缓存的方法,感兴趣的可以了解一下
    2024-11-11
  • 简介使用Nginx Plus的在线活动监控功能的方法

    简介使用Nginx Plus的在线活动监控功能的方法

    这篇文章主要介绍了简介使用Nginx Plus的在线活动监控功能的方法,注意其目前暂时为收费项目,需要的朋友可以参考下
    2015-06-06
  • web部署到nginx以后js,css等静态文件加载不正常的解决过程

    web部署到nginx以后js,css等静态文件加载不正常的解决过程

    在Ubuntu中配置Web页面时,JS和CSS文件虽可获取但加载失败,可能因路径错误、服务器配置不当、权限限制或缓存问题导致页面布局异常,需检查文件路径、服务器设置、MIME类型及浏览器控制台错误信息以排查原因
    2025-09-09

最新评论