【问题标题】:How can I avoid zero-byte files on Cloudfront edge locations?如何避免 Cloudfront 边缘位置上的零字节文件?
【发布时间】:2013-08-09 10:39:43
【问题描述】:
我们刚刚发现 Cloudfront 的一个边缘站点正在为我们的一个 javascript 资产返回一个零字节文件。失效现在正在运行,但我开始认为这种现象可能是我们的客户几个月来一直在报告的广泛但奇怪的不可重现的错误的根源。
我们正在使用具有自定义源的 Cloudfront(Nginx 从 EC2 服务器提供静态文件)。似乎每次部署到我们的应用程序都会引入新的资产名称(例如更改的文件版本),我们有一个或多个 Cloudfront 边缘位置获得 0 字节文件的非零机会。
- 有没有办法避免这种情况?
- 有什么方法可以检测到这一点吗?
[sentiment redacted]
【问题讨论】:
标签:
cdn
amazon-cloudfront
【解决方案1】:
AWS forum 上讨论了一个非常相似的问题。这似乎归结为您的服务器没有发送带有您的自定义来源的 Content Length 标头。
注意论坛的摘录,可能相关:
很遗憾,您的来源似乎没有提供 Content-Length
标题。没有 Content-Length 标头 CloudFront 无法确定
收到截断的对象并将其缓存。如果你的出身
可以发送 Content-Length 标头,任何截断的对象都不会
缓存。有关详细信息,请参阅Developer Guide。
尝试添加 ContentLength 标头,应该可以解决问题。