如何解决限制访问 URL 的用户数
有什么方法可以限制使用 AWS 访问站点 url 的用户数量。 WAF 检查 IP 地址并在超过速率限制时阻止它。
我需要它来自任何 IP,如果完全超过速率限制,它应该重定向到自定义页面,说明已超出限制。
从 api 网关进行速率限制似乎是更好的方法,但是,主页并没有调用任何 api。所以只能用url来管理。
解决方法
据我所知,不是原生的。我的理解是,您希望对特定 URL 的访问频率设置全局限制。
您可以将 CloudFront 中的 Lambda@Edge 函数与后端中的 DynamoDB 表一起使用。
每次请求都会调用 Lambda 函数。
如果是应该限制的 URL,它会向 DynamoDB 发出条件 UpdateItem
调用,并尝试在计数器尚未大于 X 的条件下将计数器加 1,其中 X 是您的网址的最大限制。
如果 UpdateItem
成功,您可以将请求传递给源。
如果调用失败,您就知道已超出限制,您可以进行重定向。
通过这种方式,您将 DynamoDB 用作中央计数器,它应该足够快并且可以很好地扩展。 一旦超出限制,您可以将其缓存在 Lambda@Edge 函数中,以避免发出过多请求。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。