惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
V
Visual Studio Blog
罗磊的独立博客
Last Week in AI
Last Week in AI
爱范儿
爱范儿
The Cloudflare Blog
有赞技术团队
有赞技术团队
博客园 - 三生石上(FineUI控件)
美团技术团队
Apple Machine Learning Research
Apple Machine Learning Research
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 司徒正美
IT之家
IT之家
博客园 - 【当耐特】
雷峰网
雷峰网
博客园_首页
Jina AI
Jina AI
Hugging Face - Blog
Hugging Face - Blog
阮一峰的网络日志
阮一峰的网络日志
量子位
V
V2EX

zu1k

zu1k 从 ASAN Stuck 到 Open Files Limit 谈谈 Mastodon、Fediverse 和 ActivityPub IPFS 日用优化指南 谁不想要 2^64 个 IP 的代理池 ? DeepL Api 设计中的欺骗战术 我爱 Rust 过程宏 使用 TUN 的模式 我的表达欲在减少 你应该弃坑吗? 2021年终总结 从最近披露的Pink僵尸网络想到的 虚假的安全感 干!有人在卷我 垃圾校园网,我忍不了了 反对直接学习经过提炼的知识 IPFS 新手指北 不讲武德!来骗Follow Golang逆向资料 如何优雅的隐藏你的 Webshell
将博客部署到CF Workers Site
zu1k · 2020-11-25 · via zu1k

WRITING / 编程

前几天Cloudflare将Workers KV增加了免费额度,还不得搞起来? 利用Workers KV存储网页内容,通过Workers将内容返回给用户,就等于将自己的网站直接部署到CF成千上万的边缘节点当中,全球访问速度和TTFB都应该不错 https://blog.cloudflare.com/workers-sites/ 安装Wrangler 官方文档…

✎ 约 644 字 阅读 2 分钟

前几天Cloudflare将Workers KV增加了免费额度,还不得搞起来?

利用Workers KV存储网页内容,通过Workers将内容返回给用户,就等于将自己的网站直接部署到CF成千上万的边缘节点当中,全球访问速度和TTFB都应该不错

https://blog.cloudflare.com/workers-sites/

安装Wrangler

官方文档

Wrangler有两种安装方式,通过NPM或者Cargo安装都可以,任选其一即可

准备好NodeJS和NPM环境,然后执行下面命令,NPM方式是下载预编译好的二进制程序,安装速度比较快

npm i @cloudflare/wrangler -g

或者准备好Rust环境,然后执行下面命令,Cargo方式是在本机从源码编译,安装速度比较慢

cargo install wrangler

# 使用系统OpenSSL库,生成的二进制会小一些
cargo install wrangler --features sys-OpenSSL

部署

我自己博客使用的是Hugo,下面所有内容都是按照Hugo的方式来,其他静态站点生成器方法类似

登录

wrangler login

# 手动设置token
wrangler config

初始化

进入自己站点的目录,执行下面命令进行初始化。这里Wrangler会自动安装cargo-generate工具,在本目录下创建一个workers-site项目目录,然后生成一个wrangler.toml配置文件

wrangler init --site

打开wrangler.toml文件,按照自己的信息进行修改

account_idzone_id都可以从Cloudflare官网上找到,route是路由到Workers的规则,这里写你需要绑定的域名,不要忘记后面的/*

bucket是网站的目录,因为我用的是Hugo,所以这个目录默认是public

entry-point是部署到Workers的js代码目录,这里不需要修改,因为刚刚初始化的时候生成的项目目录名已经自动填写上了

name = "blog"
type = "webpack"
account_id = "eu5d123456789987456321aabcddgeh"
workers_dev = true
route = "cf.zu1k.com/*"
zone_id = "fhidag8u98f43h93fhiohr929c8d59efhauh"

[site]
bucket = "public"
entry-point = "workers-site"

预览

wrangler preview --watch

发布

在Cloudflare中增加一条DNS记录,需要打开CF代理

DNS记录

执行下面命令进行部署

wrangler publish

使用GitHub Actions持续集成

Cloudflare提供了官方的Wrangler GitHub Action,可以直接用GitHub Actions将博客内容部署到CF Workers Site

添加认证信息

在github仓库设置一个secret,名字为CF_API_TOKEN,值为Wrangler的token

CF_API_TOKEN

Workflows

name: hugo

on:
  push:
    branches:
      - master

jobs:
  deploy:
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true
          fetch-depth: 0

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: '0.78.2'
          extended: true

      - name: Build
        run: hugo --minify

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./public

      - name: Publish
        uses: cloudflare/wrangler-action@1.3.0
        with:
          apiToken: ${{ secrets.CF_API_TOKEN }}