当调用到特定URL时,AWS负载平衡器返回403响应。一旦浏览器缓存被清除,它将开始工作。这种情况偶尔会发生。原因是什么?WAF日志中没有记录这样的响应。这是因为应用程序负载平衡器吗?最近有人遇到过来自AWS的类似问题吗?
如果您同时使用AWS WAF和ALB,则WAF很可能会阻塞请求。下面的文档可能会有所帮助。
[1]解决你的应用程序负载平衡- HTTP 403:禁止- https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-troubleshooting.html#http-403-issues
如果您启用了访问日志,请检查"已执行的操作"。访问日志字段。如果值为"WAF",则表示负载均衡器将请求转发给AWS WAF,以确定是否应将请求转发给目标。如果这是最终操作,则AWS WAF决定应拒绝该请求。参考以下文档。
[2]应用程序负载均衡器的访问日志-所采取的操作- https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html#actions-taken
另一方面,也有可能目标正在发送HTTP 403,而ALB正在将其转发回客户机。检查target_status_code"字段为403。您还将看到"elb_status_code"因为ALB将向客户端发送相同的代码。
在这种情况下,"action"字段将"向前"。
关于ALB访问日志格式/语法的PFB文档。
[3]访问应用程序负载均衡器的日志-语法- https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html#access-log-entry-syntax
我希望这对你有帮助!