问题:
我们的 REST API 用于静态图像请求和其他计算密集型任务的请求,例如渲染新图像。
我们注意到我们的 Apache-Django 服务器在一些渲染请求上陷入困境,因此无法满足更频繁和简单的静态图像请求。
解决方案的基本概要:
服务器 1 解析 URL 请求,并决定该请求是静态图片请求以传递给服务器 2,还是渲染请求以传递给服务器 3。
然后,服务器 2 和服务器 3 将响应发送回客户端。
我们使用 AWS。
问题:
上述所有服务器都应使用 Apache-Django 吗?
是否应将 CloudFront 视为服务器 2 的替代方案?
是否可以通过以某种方式扩展 AWS 负载均衡器来处理服务器 1?
我还应该研究什么?
答案1
如果每个请求都必须先到达您的服务器,CloudFront 不会给您带来太多好处。不过,CloudFront 最近获得了对动态内容,因此您可以据此设置您的服务。
CloudFront 将成为所有传入请求的入口点。静态内容将存储在 S3 上(带有适当的 Expires 标头),CloudFront 配置为从 S3 提供静态内容。动态内容将从您的 EC2 实例提供(带有即时 Expires 标头),CloudFront 配置为从这些服务器提供动态内容。