`
sunbin
  • 浏览: 349805 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

nginx反向代理后取客户ip地址

 
阅读更多
public class IPUtils {
    /**
     * 获取访问者IP
     *
     * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。
     *
     * 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割),
     * 如果还不存在则调用Request .getRemoteAddr()。
     *
     * @param request
* @return
*/
public static String getIpAddr(HttpServletRequest request) {
        String ip = request.getHeader("X-Real-IP");
        if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {
            return ip;
        }
        ip = request.getHeader("X-Forwarded-For");
        if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {
// 多次反向代理后会有多个IP值,第一个为真实IP。
int index = ip.indexOf(',');
            if (index != -1) {
                return ip.substring(0, index);
            } else {
                return ip;
            }
        } else {
            return request.getRemoteAddr();
        }
    }
}
分享到:
评论

相关推荐

    nginx做反向代理时的真实IP_nginx反向代理_

    在反向代理模式下,Nginx接收到的请求头部信息可能包含多个IP地址,而我们通常需要的是原始客户端(用户)的IP地址,即真实IP。 要获取Nginx反向代理下的真实IP,主要涉及以下两个关键配置: 1. **$remote_addr ...

    Nginx反向代理不能访问项目的解决办法

    ### Nginx反向代理不能访问项目的解决办法 在配置Nginx作为反向代理服务器时,有时会遇到可以通过域名正常访问Linux系统下部署的Tomcat服务器,但是却无法访问到部署在Tomcat上的具体项目的情况。这种情况通常是...

    https通信nginx反向代理443端口

    在IT行业中,HTTPS通信是确保网站数据安全传输的重要手段,而Nginx作为一款高性能的HTTP和反向代理服务器,常被用来实现这种安全通信。本文将深入探讨如何通过Nginx配置HTTPS服务器,实现443端口的反向代理,以及与...

    Web APP 如何实现类似Nginx反向代理转发功能-zhangyannan1

    在实际应用中,我们可以根据需要调整反向代理转发规则,例如根据用户的IP地址、浏览器类型等信息来进行转发。同时,我们也可以使用其他技术,例如负载均衡器、CDN 等来实现反向代理转发功能。 使用 Web APP 实现...

    windows下配置nginx反向代理tomcat

    ### Windows 下配置 Nginx 反向代理 Tomcat 在 Windows 环境下配置 Nginx 作为 Tomcat 的反向代理服务器是一项常见的任务,主要用于实现负载均衡、提高安全性及提升性能等目的。本文将从下载 Nginx 开始,详细介绍...

    nginx正向代理与反向代理详解

    本文将详细介绍Nginx如何实现正向代理和反向代理,以及这两种代理方式的应用场景。 **正向代理** 正向代理的主要作用是让内部网络中的设备(如服务器B)通过一个具有外部网络访问权限的设备(如服务器A)来访问...

    一分钟搞定 Nginx反向代理 nginx域名代理

    同一ip(都是80端口)可以绑定无数个域名 配置简单 里面包含一个配置文档:配置文档.doc 看一遍 大部分人都会设置了。 内容如下: NGNIX配置文档 1.解压文件到相应文件夹下(我解压到D:/下) (这里是图片) 目录...

    nginx反向代理服务

    【Nginx反向代理服务】是网络服务器配置中的一个重要概念,主要应用于负载均衡和安全性增强。Nginx是一款高性能的HTTP和反向代理服务器,以其高效、稳定和低内存占用而闻名。在Linux系统中部署Nginx,可以极大地提升...

    Nginx反向代理工作原理简介与配置详解-李雄

    在传统的正向代理中,用户通过代理服务器访问目标网站,代理服务器隐藏了真实用户的IP地址。而在反向代理中,情况正好相反,用户直接访问的是Nginx服务器,Nginx作为代理服务器隐藏了后端服务器的信息,将请求转发到...

    nginx反向代理操作方法

    Nginx 反向代理是指在服务器端将客户端的请求转发给内部网络的服务器,以隐藏内部服务器的 IP 地址,提高安全性和灵活性。下面是 Nginx 反向代理操作方法的详细步骤: 1. 首先,访问 Nginx 官网...

    nginx 反向代理软件

    -----> 代理目标地址, 需要在HOSTS文件中与之匹配。 #location ~ /(public|template) { # proxy_pass_header Server; # proxy_set_header Host $http_host; # proxy...

    Nginx反向代理.doc

    在这个配置示例中,我们有四台 CentOS 7 虚拟机,其中一台作为 Nginx 代理服务器,IP 地址为 192.168.4.5 和 192.168.2.5,另外两台作为后端 Web 服务器,IP 地址分别为 192.168.2.100 和 192.168.2.200。...

    Nginx反向代理可视化管理方案研究及编程实现.pdf

    基于 Nginx 的反向代理可视化管理系统能够简化配置过程,提高管理效率,解决公网 IPv4 资源紧缺条件下对外发布多个 Web 应用的问题,为数字化校园建设过程中的公网 IP 地址紧缺问题提供了一种可行的解决方案。

    cdn软件高级版(nginx反向代理方式实现)

    **一、Nginx反向代理原理** 反向代理是指客户端请求到达Nginx服务器时,Nginx并不直接返回内容,而是根据配置将请求转发到实际的后端服务器,获取内容后再返回给客户端。这样做的好处包括负载均衡、安全防护以及提高...

    nginx反向代理 linux版.zip

    **Nginx反向代理 Linux版** 在现代Web服务架构中,Nginx是一个非常流行的高性能HTTP和反向代理服务器,尤其在Linux环境下,它的高效性能和轻量级特性使其成为首选。Nginx反向代理是其核心功能之一,能够帮助优化...

    Nginx反向代理1

    【Nginx反向代理】是网络服务器架构中一种重要的技术,主要用于实现用户访问数据的调度和压力分担,从而提升系统的性能、可伸缩性和高可用性。Nginx作为一个高性能的HTTP和反向代理服务器,常被用于构建集群环境,...

    nginx反向代理配置.conf

    nginx反向代理配置文件,域名映射ip+端口,地址栏输入域名即可跳转对应的IP+端口

Global site tag (gtag.js) - Google Analytics