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