JSt*_*ark 8 amazon-s3 cname-record cdn ip-blocking cloudflare
我有 Cloudflare 提供的静态内容。Cloudflare 指向 Amazon S3 以获取静态内容并通过 CNAME (cdn.mydomain.com) 为其提供服务。存储桶设置正确并且一切正常,直到周五我开始在浏览器中收到请求超时。我确认内容仍然可以通过 S3 访问,并使用 Cloudflare 开了一张票。Cloudflare 报告说,“亚马逊确实出现了一些可能阻止来自我们 IP 的请求”,并且他们在日志中看到了以下消息:
upstream timed out (110: Connection timed out) while reading response header from upstream cdn.mydomain.com
upstream prematurely closed connection while reading response header from upstream cdn.mydomain.com
Run Code Online (Sandbox Code Playgroud)
这是我的 CORS 文件中已有的内容。
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
Run Code Online (Sandbox Code Playgroud)
我应该在 AllowedHeader 中放一个 * 吗?我是否需要明确命名 Cloudflare IP 地址?我错过了什么来避免阻塞?
dan*_*aur -2
您是否有任何原因不使用 S3 存储桶支持的 Amazon CloudFront发行版来提供静态内容?应该比 CloudFlare -> S3 更高效,并且如果 Amazon 确实阻止 CloudFlare 访问 S3(尽管这并没有说明他们为什么要这样做),那么这对您来说将不再是问题。
您还可以将您的 cdn.mydomain.com 主机名 CNAME 为 [distribution_id].cloudfront.net,以保留您的 URL 方案并使转换对您的用户透明。CloudFront 的运行方式与 CloudFlare 非常相似,它们的 IP 地址通过 BGP 路由到全球最近的位置,但 Amazon 内部将拥有更高效的 CloudFront -> S3 获取系统。
据我所知,S3 和 CloudFront 之间的传输是免费的,因此您无需为带宽支付更多费用(如果有的话)。
| 归档时间: |
|
| 查看次数: |
1047 次 |
| 最近记录: |