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服务器之负载均衡策略(6种)

    详解Nginx服务器之负载均衡策略(6种)

    这篇文章主要介绍了详解Nginx服务器之负载均衡策略(6种),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Nginx中配置防盗链的方法实现

    Nginx中配置防盗链的方法实现

    在数字化时代,保护网站内容免受盗链至关重要,Nginx防盗链通过检查请求头Referer字段来拒绝非法来源请求,本文就来详细的介绍一下,感兴趣的可以了解一下
    2024-10-10
  • nginx服务器实现上传下载文件的实例代码

    nginx服务器实现上传下载文件的实例代码

    这篇文章主要介绍了nginx服务器实现上传下载文件的实例代码,本文通过代码给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-02-02
  • Nginx代理到https地址忽略证书验证配置的实现

    Nginx代理到https地址忽略证书验证配置的实现

    在特定情况下,Nginx代理到HTTPS地址可能需要忽略证书验证,本文就来介绍一下如何实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-09-09
  • Nginx 禁止直接访问目录或文件的操作方法

    Nginx 禁止直接访问目录或文件的操作方法

    Nginx 默认是不允许列出整个目录的,那么需要这样的功能怎么操作呢,下面小编给大家介绍下Nginx 禁止直接访问目录或文件的方法,需要的朋友可以参考下
    2022-10-10
  • Nginx 配置 ModSecurity 网络应用防火墙实现

    Nginx 配置 ModSecurity 网络应用防火墙实现

    这篇文章主要介绍了Nginx 配置 ModSecurity 网络应用防火墙实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • Ubuntu上安装Nginx服务器程序及简单的环境配置小结

    Ubuntu上安装Nginx服务器程序及简单的环境配置小结

    Nginx是一款高性能的异步非阻塞服务器应用程序,人气相当高,这里我们就来看一下在Ubuntu上安装Nginx服务器程序及简单的环境配置小结:
    2016-07-07
  • Nginx正向代理实现局域网电脑访问外网的过程详解

    Nginx正向代理实现局域网电脑访问外网的过程详解

    在工作中我遇到了一个类似的情况:在公司网络中,由于管理要求,局域网内的电脑不能直接访问外网,但是,工作上领导吩咐需要让局域网内的电脑能够访问外网上的某个网站,这时候就需要用到正向代理,本文将介绍如何配置 Nginx 实现这一功能,需要的朋友可以参考下
    2024-03-03
  • filebeat收集json格式的tomcat日志详解

    filebeat收集json格式的tomcat日志详解

    这篇文章主要为大家介绍了filebeat收集json格式的tomcat日志详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Nginx代理MySQL实现通过域名连接数据库的详细教程

    Nginx代理MySQL实现通过域名连接数据库的详细教程

    我们的生产环境基本上都部署在云服务器上,例如应用服务器、MySQL服务器等,如果MySQL服务器直接暴露在公网,就会存在很大的风险,为了保证数据安全,MySQL服务器的端口是不对外开放的,所以本文介绍了Nginx代理MySQL实现通过域名连接数据库的详细教程
    2024-07-07

最新评论