开发者社区 > 飞天洛神云网络 > 负载均衡 > 正文

ALB前面加上waf和ddos后获取不到真实客户端ip,怎么解决?

ALB前面加上waf和ddos后获取不到真实客户端ip,怎么解决?

展开
收起
我父亲配享太庙 2023-05-16 12:22:29 326 0
1 条回答
写回答
取消 提交回答
  • ALB 前添加 WAF 和 DDoS 防护后无法获取真实客户端 IP 的问题,可能是因为在使用 ALB 前,WAF 和 DDoS 防护服务会把客户端发起的请求先转发给 WAF 或 DDoS 防护实例,再由 WAF 或 DDoS 防护实例转发到 ALB,从而导致 ALB 无法获得客户端的真实 IP。

    为了解决这个问题,您可以尝试以下两种方法:

    1. 使用 X-Forwarded-For 头信息传递客户端 IP:

    在 ALB 的 Listener 规则中,您可以添加一个转发规则,使得后端服务器不再获得 ALB 的 IP,而是获得来自客户端的真实 IP。为了实现这个规则,您需要在 Listener 规则的重定向 URL 中添加 X-Forwarded-For 头。例如,在 Nginx 的配置文件中,您可以添加以下代码:

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://your-server;
    }
    

    这样后端服务器就可以通过 X-Forwarded-For 头来获取客户端真实 IP 了。

    1. 使用 CNAME 记录:

    在 DNS 解析时,您可以将域名解析为一个 CNAME 记录,然后将这个 CNAME 记录指向 ALB 的域名,再通过 ALB 转发到后端服务器。这样一来,在客户端通过 DNS 请求您的域名时,DNS 服务器就会返回一个 CNAME 记录,通过这个 CNAME 记录客户端将请求发送到 WAF 或 DDoS 防护,再由 WAF 或 DDoS 防护转发到 ALB,最终从后端服务器上获取到客户端真实 IP。

    以上两种方法都可以实现客户端真实 IP 的获取,具体实施时,您可以根据实际情况选择合适的方法。

    2023-05-16 14:08:28
    赞同 展开评论 打赏

阿里云负载均衡(Server Load Balancer,简称SLB)是云原生时代应用高可用的基本要素。通过将流量分发到不同的后端服务来扩展应用系统的服务吞吐能力,消除单点故障并提升应用系统的可用性。 阿里云SLB包含面向4层的网络型负载均衡NLB、面向7层的应用型负载均衡ALB和传统型负载均衡CLB,是阿里云官方云原生网关。

相关产品

  • 负载均衡
  • 热门讨论

    热门文章

    相关电子书

    更多
    《应用型负载均衡ALB产品解读》 立即下载
    阿里云网络-SLB负载均衡产品介绍 立即下载
    负载均衡SLB热点问题解答 立即下载