Cloudflare Worker 是 Cloudflare 提供的基于 Serverless 的云端服务,最新的 Workers Sites 允许使用者将博客程序如 Hexo、Wordpress 等部署到 Cloudflare 云端运行,算是新开发出来的奇技淫巧吧。本教程以 Hexo 部署为例,默认具有 Node 环境。
安装 Cloudflare 提供的部署程序 Wrangler
安装 Wrangler
Wrangler 的项目地址:github.com/cloudflare/wrangler 按照官方教程,使用 npm 安装 Wrangler ,在控制台输入
代码语言:javascript复制$ npm i @cloudflare/wrangler -g #全局安装
$ # npm i @cloudflare/wrangler #如果默认环境无法进行全局安装,可以使用此局部安装命令,在工程目录需使用npx调用
cargo 方式安装 Wrangler(未使用)
代码语言:javascript复制$ cargo install wrangler
获取 Cloudflare api 密钥
在Cloudflare 的 api 控制台中创建一个新的 api-token,点击新建 api-token,选择使用模板(Start with a template)。
使用Edit Cloudflare Workers
模板创建新的 api,配置相应的权限即可获得一个新的api-tokens
,保存备用。
配置 Wrangler 全局密钥
控制台执行
代码语言:javascript复制$ wrangler config
输入刚才保存的api-tokens
运行验证即可完成全部配置。
初始化 Wrangler
在工程目录终端中执行
代码语言:javascript复制$ wrangler init --site my-static-site #my-static-site替换为要创建的Works名称
# $ npx wrangler init --site my-static-site #局部安装使用此命令,用法如上
执行此条命令会在工程目录中生成wrangler.toml
和aworkers-site
,其中wrangler.toml
是工程中 Wrangler 的配置文件。
配置 Wrangler
简单设置 Wrangler.toml
默认生成的wrangler.toml
如下,可依据设置
name = "site" #此处为之前初始化填写的Workes名称
type = "webpack"
account_id = "" #这里填写自己的Workers ID,在Workers面板中查找
workers_dev = true
route = "" #这里是个性化域名区域
zone_id = ""
[site]
bucket = "public" #这里填写Hexo程序默认的生成目录文件
entry-point = "workers-site"
配置个性化域名(这一步可以不填写,使用默认的 Workers 域名)
根据以下提示写入wrangler.toml
zone_id = "42ef.."
route = "example.com/*"
设置自定义域名时,可以在 wrangler 配置完成后,在域名管理中的 Workers 设置中添加对应的 Workers 路由,再将 SSL 安全级别调整为 Flexible,否则会遇到 SSL 526 错误。
上传全站到 Cloudflare Workers
使用 Hexo 生成一次静态文件
首先使用 Hexo 在工程目录生成一次静态文件,以产生public
文件,如不生产则会下下一步上传中报错。
上传 Public 到 Cloudflare
控制台中运行
代码语言:javascript复制$ wrangler publish
提示以下即完成所有的运行操作。
代码语言:javascript复制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://test.pv.workers.dev/ ,演示程序所生成的静态文件存储在对应的 Workers KV 中。
注意,免费版本的 Workers Plan 有每天 100,000 次的访问限制(100,000 requests per day ),免费额度适合小站部署(流量大容易翻车),大站还是使用独立服务器或者收费版本部署稳一些。