前言
Cloudflare R2 提供兼容 S3 的对象存储服务,零出口流量费用。本文介绍使用 R2 + Docker + rclone 部署 Hexo 博客。
创建 R2 存储桶
在 Cloudflare 控制台操作:
- 进入 R2 服务页面,点击「创建存储桶」
- 设置存储桶名称(如
blog) - 记录 Access Key ID、Secret Access Key 和 Endpoint URL
配置 rclone 自动上传
创建 docker-compose.yml 文件:
1 | services: |
关键配置:
- 替换
ACCESS_KEY_ID、SECRET_ACCESS_KEY和ENDPOINT为实际值 --transfers=10和--checkers=20加快同步速度--exclude排除不必要的文件
配置部署命令
修改 package.json:
1 | { |
执行 npm run deploy 即可完成清理、构建、上传
配置自定义域名
在 R2 存储桶设置中,选择「自定义域」,添加域名并完成 DNS 配置。
配置 URL 重写规则
让目录访问(如 /about/)自动加载 index.html:
在 Cloudflare 控制台「规则」→「概述」→「创建规则」→「URL 重写规则」中:
自定义筛选表达式:
- 「URI 路径」→「结尾为」→
/ - AND
- 「主机名」→「等于」→
blog.mrabit.com
重写到:
- 「Dynamic」→
concat(http.request.uri.path, "index.html")
实现访问 /about/ 时自动重写为 /about/index.html
部署
完成配置后,每次部署执行:
1 | npm run deploy |
总结
使用 Cloudflare R2 部署 Hexo 的优势:
- 零出口流量费用
- 全球 CDN 加速
- Docker + rclone 实现自动化部署
- Cloudflare 基础设施保障高可用性