如何为S3存储桶配置Cloudflare CDN(子域名cdn.abc.xyz.com)
配置cdn.abc.xyz.com指向Amazon S3并启用Cloudflare CDN的步骤
一、先完成Amazon S3的基础配置
- 确认存储桶端点:
若开启S3静态网站托管,端点格式为bucket-name.s3-website-<区域>.amazonaws.com(例如us-east-1区域就是bucket-name.s3-website-us-east-1.amazonaws.com);未开启静态网站的话,使用常规S3端点bucket-name.s3.<区域>.amazonaws.com,注意区域和存储桶名称不要写错。 - 配置访问权限:
两种方案二选一:- 公开访问:给存储桶添加桶策略,允许
GET请求访问对象(适合公开资源场景)。 - 安全限制(推荐):使用Cloudflare的Origin Access Control(OAC),仅允许Cloudflare的请求访问S3。操作方式是在Cloudflare后台创建OAC规则,再将生成的策略复制到S3存储桶的权限策略中。
- 公开访问:给存储桶添加桶策略,允许
- CORS配置(跨域加载图片时需要):
给存储桶添加CORS规则,允许https://cdn.abc.xyz.com的访问,示例配置:<?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>https://cdn.abc.xyz.com</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration>
二、Cloudflare DNS与CDN配置
- 登录Cloudflare后台,找到
abc.xyz.com对应的域名管理页面。 - 添加CNAME记录:
- 名称:填写
cdn(最终生成子域名cdn.abc.xyz.com) - 目标:填入刚才获取的S3端点地址
- 代理状态:必须切换为橙色云朵(启用代理)——这是CDN生效的核心,之前配置失败大概率是遗漏了这一步
- TTL:选择「自动」即可
- 名称:填写
- 保存记录后,等待DNS生效(通常需要几分钟到十几分钟)。
三、常见问题排查
- 验证DNS解析:使用
nslookup cdn.abc.xyz.com或dig cdn.abc.xyz.com命令,若返回Cloudflare的IP,说明解析正常;若直接返回S3的IP,检查代理状态是否开启。 - 检查端点正确性:若访问图片出现404,确认端点的区域、存储桶名称是否与实际一致,存储桶内的对象路径是否正确。
- 缓存生效测试:访问图片后,查看浏览器开发者工具的响应头,若存在
CF-Cache-Status字段(值为HIT/MISS/EXPIRED等),说明CDN已正常工作。
内容的提问来源于stack exchange,提问作者Aman
相关产品推荐
相关产品推荐

