zoukankan      html  css  js  c++  java
  • 后端获取不到客户端真实IP,获取的是WAF 的IP

    后端获取不到真实IP,获取的是WAF 的IP

    一、问题详情

    image-20200514091007244

    最近在线上遇到这样的问题,部分服务需要记录客户端的真实IP,但是实际记录的是 WAF的IP ,我们在 Nginx 前面接入了 WAF 。但是我们在 Nginx 层面也是设置了将真实IP 传入到后端的。所以我们怀疑是后端拿错值了。

    • Nginx 配置

      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      

    进行排查代码,发现默认代码里面拿取的是 X-Real-IP ,但是这个IPNginx 层面我们已经设置为了 waf 的IP。

    image-20200512142118934

    2、 问题解决

    1. 更改上面的 代码

      开发需要去做的。不拿 X-Real-IP 去拿 X-Forwarded-For 的字段的第一个值。
      
    2. 更改Nginx 的配置。

      1. 方法一

        • proxy_set_header X-Real-IP $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          
      2. 方法二

        • 去除这个值:proxy_set_header X-Real-IP $remote_addr;  让后端获取不到 X-Real-IP的值
          
  • 相关阅读:
    主流编程语言
    计算机语言
    IT(Information technology)
    设计模式-学习
    Java 执行顺序
    学习大纲
    Springboot注解整理 二《自定义注解》
    IntelliJ IDE 基础经验备案三
    IntelliJ IDE 基础经验备案二
    Mybatis使用经验归档
  • 原文地址:https://www.cnblogs.com/operationhome/p/12886395.html
Copyright © 2011-2022 走看看