AWS 负载均衡器返回 403 响应?

问题描述

调用到达特定 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”字段的值为“forward”。

有关 ALB 访问日志格式/语法的 PFB 文档。

[3] 应用程序负载均衡器的访问日志 - 语法 - https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html#access-log-entry-syntax

我希望这会有所帮助!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...