设置服务器 1 来解析并将静态文件请求传递给服务器 2,将计算密集型请求传递给服务器 3

设置服务器 1 来解析并将静态文件请求传递给服务器 2,将计算密集型请求传递给服务器 3

问题:

我们的 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 配置为从这些服务器提供动态内容。

相关内容