为 Django 堆栈设置 Route 53->CloudFront->Elastic Beanstalk 基础设施

Setting up Route53->CloundFront->Elasticbeanstalk infrastructure for Django stack

最近,AWS 推出了将 Cloudfront(CF) 连接到 Elasticbeanstalk 等自定义来源的功能,从而实现了通过动态服务器的 CDN 以及介于两者之间的 WAL。

我想使用这样的 AWS 基础设施:

Route53->CloundFront->Elasticbeanstalk(+LoadBalancer)

而且我还想要 non-zero TTL 来为匿名用户缓存对相同 url 的请求。

为此,我显然需要将 cookie 列入白名单,也许 headers 排除缓存。直觉上我觉得我需要排除授权 cookie、csrf cookie - 答案是我需要排除哪些 cookie 和 headers 才能使一切正常?

还有 gist/lib 来解决从 X_FORWARDED_IP headers 链中排除 CF ip 地址的问题吗?

我发现了一个 article 描述如何为 Ruby 设置所有内容,这已经足够了,但没有描述与仅缓存一般基础设施设置相关的问题。

鉴于您的用户有一个会话 cookie 或一些可以识别他们的 cookie,您可以在 CloudFront 中将此 cookie 列入白名单。

CloudFront 缓存将只缓存具有相同 cookie 值的用户,即不缓存登录用户,只缓存匿名用户。

CloudFront 将默认转发您的缓存 ttl,因此您可以从 beantalk 应用程序中进行设置。