cloudflare r2进行cdn加速
当我们声明了自定义域名时,实际上,当我们访问资源时,也是会通过cf的代理转发,所以也是经过dns解析的,而cf的dns解析过程中加入了cdn处理,因此不需要额外的配置

CF DNS 常见记录类型
R2 记录类型
R2 是 Cloudflare 特有的 DNS 记录类型,专门用于连接 R2 对象存储服务。
特点:
bash
Type: R2
Name: data.tianran.org # 你的域名
Content: public # R2存储桶名称
Proxy status: Proxied # 启用CDN代理
作用:
- 直接将域名指向 R2 存储桶
- 自动启用 CDN 加速
- 无需手动配置复杂的存储桶 URL
CNAME 记录类型
CNAME(Canonical Name)是标准的 DNS 记录类型,用于创建域名别名。
特点:
bash
Type: CNAME
Name: cdn # 子域名
Content: 37789669-2af8-4... # 目标域名或服务地址
Proxy status: Proxied # 启用CDN代理
作用:
- 将一个域名指向另一个域名
- 常用于 CDN、负载均衡等服务
- 更灵活的域名映射
实际应用对比
使用 R2 记录:
javascript
// 直接访问 R2 存储的文件
const imageUrl = 'https://data.tianran.org/images/photo.jpg';
使用 CNAME 记录:
javascript
// 通过 CNAME 别名访问
const cdnUrl = 'https://cdn.tianran.org/assets/style.css';
在你的配置中:
从截图可以看到:
- R2 记录 :
data.tianran.org
直接连接到名为public
的 R2 存储桶 - CNAME 记录 :
cdn
、blog
等都是域名别名,指向不同的服务
代码使用示例:
html
<!-- 使用 R2 记录访问存储文件 -->
<img src="https://data.tianran.org/uploads/avatar.png" alt="Avatar">
<!-- 使用 CNAME 记录访问 CDN 资源 -->
<link rel="stylesheet" href="https://cdn.tianran.org/css/main.css">
性能对比:
javascript
// R2 记录 - 直接访问存储
fetch('https://data.tianran.org/api/data.json')
.then(response => response.json())
.then(data => console.log('R2数据:', data));
// CNAME 记录 - 通过别名访问
fetch('https://cdn.tianran.org/resources/config.json')
.then(response => response.json())
.then(data => console.log('CDN数据:', data));
总结:
- R2 记录是 Cloudflare 为 R2 存储服务专门设计的,使用更简单
- CNAME 记录是通用的 DNS 别名机制,使用更灵活
- 两者都可以启用 Proxied 状态来享受 Cloudflare 的 CDN 加速