为 Django 堆栈设置 Route 53->CloudFront->Elastic Beanstalk 基础设施
Posted
技术标签:
【中文标题】为 Django 堆栈设置 Route 53->CloudFront->Elastic Beanstalk 基础设施【英文标题】:Setting up Route53->CloundFront->Elasticbeanstalk infrastructure for Django stack 【发布时间】:2017-05-02 09:16:43 【问题描述】:最近,AWS 引入了将 Cloudfront(CF) 连接到 Elasticbeanstalk 等自定义源的能力,从而能够通过动态服务器实现 CDN,而 WAL 介于两者之间。
我想使用这种 AWS 基础设施:
Route53->CloundFront->Elasticbeanstalk(+LoadBalancer)
而且我还希望为匿名用户缓存到相同 url 的请求的非零 TTL。
为此,我显然需要将 cookie 以及可能要排除缓存的标头列入白名单。直觉上我觉得我需要排除授权 cookie、csrf cookie - 答案是我需要排除哪些 cookie 和标头才能使一切正常?
还有一个 gist/lib 来解决从 X_FORWARDED_IP 标头链中排除 CF ip 地址的问题吗?
我发现了一个 article 描述如何为 Ruby 设置所有内容,这已经足够好,但没有描述与仅缓存通用基础架构设置相关的问题。
【问题讨论】:
【参考方案1】:鉴于您的用户有一个会话 cookie 或一些识别他们的 cookie,您可以在 CloudFront 中将此 cookie 列入白名单。
CloudFront 缓存将仅缓存具有相同 cookie 值的用户,即不缓存登录用户,而仅缓存匿名用户。
默认情况下,CloudFront 会转发您的缓存 ttl,因此您可以从 beanstalk 应用程序中设置它。
【讨论】:
以上是关于为 Django 堆栈设置 Route 53->CloudFront->Elastic Beanstalk 基础设施的主要内容,如果未能解决你的问题,请参考以下文章
将 Amazon Route 53 域名链接到 EC2 实例
使用 Cloudfront、EB 和 Route 53 时,源域名应该设置啥?
使用 Shopify 商店设置时 Route53 DNS 无法解析