Cloudflare Worker 是 Cloudflare 提供的基于 Serverless 的云端服务,最新的 Workers Sites 允许使用者将博客程序如 Hexo、Wordpress 等部署到 Cloudflare 云端运行,算是新开发出来的奇技淫巧吧。本教程以 Hexo 部署为例,默认具有 Node 环境。

安装 Wrangler

Wrangler 的项目地址:github.com/cloudflare/wrangler
可按照官方教程,使用 npm 安装 Wrangler

1
2
yarn global add @cloudflare/wrangler
# npm install @cloudflare/wrangler -g

获取API秘钥

Cloudflare 的 api 控制台中创建一个新的 api-token,点击新建 api-token,选择使用模板(Start with a template)。

l1dbcgl3.png

使用 Edit Cloudflare Workers 模板创建新的 api,配置相应的权限即可获得一个新的 api-tokens,保存备用。

l1dbdp8e.png

配置 Wrangler 全局密钥

终端直接执行

1
wrangler config

输入刚才保存的 api-tokens 运行验证即可完成全部配置。

l1dbfcex.png

初始化 Wrangler

在根目录直接终端执行

1
2
wrangler init --site han-hexo
# han-hexo 为要创建的Works名称

执行完毕后
在工程目录中会生成 wrangler.toml 和 aworkers-site文件
其中 wrangler.toml 是工程中 Wrangler 的配置文件

设置 Wrangler.toml

默认生成的 wrangler.toml 如下,可依据设置

1
2
3
4
5
6
7
8
9
name = "han-hexo" # 此处为之前初始化填写的Workes名称
type = "webpack"
route = 'hexo.4ce.cn/*' # 此处为绑定workers上的自定义域名
zone_id = '2892xxxxxxxxxxxxxxxxxxxxxxx' # 此处为Workes ID
usage_model = ''
compatibility_flags = []
workers_dev = true
site = {bucket = "public",entry-point = "workers-site"}
compatibility_date = "2022-03-29"

注意:设置自定义域名时,可以在 wrangler 配置完成后,在域名管理中的 Workers 设置中添加对应的 Workers 路由,再将 SSL 安全级别调整为 Flexible,否则会遇到 SSL 526 错误。

在CloudFlare workers部署你的Hexo静态博客

上传全站到 Cloudflare Workers

在 Hexo 执行 hexo generate 编译生成静态文件后,复制整个生成的 public 目录到 workers-site 同级目录
然后执行

1
wrangler publish

在CloudFlare workers部署你的Hexo静态博客

出现以下,即为成功。

1
2
3
4
5
6
7
Using namespace for Workers Site "__site-workers_sites_assets"
Uploading site files
Success
⬇️ Installing wranglerjs...
⬇️ Installing wasm-pack...
Built successfully, built project size is 11 KiB.
Successfully published your script to https://*.workers.dev # 这里就是生成的预览地址

部署在 Workers 的 Hexo 演示程序:https://han-hexo.ohan.workers.devhttps://hexo.4ce.cn),演示程序所生成的静态文件存储在对应的 Workers KV 中。

前往 Han -Hexo

在CloudFlare workers部署你的Hexo静态博客

注意,免费版本的 Workers Plan 有每天 100,000 次的访问限制(100,000 requests per day ),免费额度适合小站部署(流量大容易翻车),大站还是使用独立服务器或者收费版本部署稳一些。