来自 cloudfront 的动态内容 - 我可以放置来自 Rails 的 API 结果 (JSON) 吗?

ddb*_*ddb 6 caching ruby-on-rails amazon-web-services amazon-cloudfront

我看到 CloudFront 支持动态内容。

谁能指导我如何在 Rails 中做到这一点?例如,我有 api.test.com/popular.json,我希望最好从 CloudFront 提供服务,但可能每隔几个小时就会更新一次。

对于静态资产,我已经能够使用 Rails asset_host 设置来做到这一点。但我还没有找到足够的关于动态内容的指南。任何指针都会有用。

tom*_*mfa 1

您无需将 Rails 应用程序与 CloudFront 集成。相反,您可以设置 CloudFront 来缓存您的网站:

  1. 转到 AWS 控制台并添加新的 CloudFront 分配
    • 网络传送方式
    • 原始域名myexistingdomain.com

您可以保留所有默认值不变。可以设置最小/默认/最大 TTL 选项来强制执行特定的缓存时间,并且可能需要根据您的服务器设置。

  1. 在 处myexistingdomain.com,您必须设置Access-Control-Allow-Origin标头以包含您的 Cloudfront 分配的域名。

正如您可能已经经历过的那样,CloudFront 上的大多数更新或添加源通常需要大约 20 分钟,因此请耐心等待。

此外,如果您需要在 Rails 应用程序中使用查询参数、Cookie 或特殊标头,则必须将它们包含在 CloudFront 分配的缓存设置中。请注意,这会降低分配的效率。