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

推荐订阅源

The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
V
V2EX
博客园 - 司徒正美
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
雷峰网
雷峰网
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Apple Machine Learning Research
Apple Machine Learning Research
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
SegmentFault 最新的问题
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
爱范儿
爱范儿
博客园 - 聂微东
量子位
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Vercel News
Vercel News

流动

山西之旅 | 流动 博客焕新,记录继续 | 流动 友链 | 流动 博客加速实践 广府古城一日游 我做了一个口播短视频二创工具:VideoRemaker Windows 下 Codex Cli 更新报 Move-Item is denied 错误的解决 Caddy 转发 GOST 报 TLS internal error 问题的排查与解决 对口型视频合成方案对比:Wav2Lip、VideoReTalking 与 MuseTalk 2026 音色克隆方案对比:IndexTTS-2、CosyVoice、GPT-SoVITS、Fish Speech、VoxCPM 部署与实测 AI Agent折腾记(OpenClaw / Hermes Agent) 我的2025年 大连之行 回家收麦 六一儿童节爬长城 Golang database/sql 数据库断线自动重连机制解析 Golang默认Http Client导致的cannot assign requested address错误 清明踏春,爬山看海 购入小牛G400T电动车 北京的三月飞雪 wrenAI本地LLM模型部署 天津一日游 2024年终总结 停止使用staticfile.org服务 使用 ImageMagick 自动添加水印,保护图片版权 如何注册一个.sol域名 奥森公园半日游 昌平42公里骑行绿道打卡 十月一日爬慕田峪长城 当Hugo遇上AVIF,优化图片加载
将博客部署到Cloudflare Pages
Liudon · 2022-07-29 · via 流动

目前博客是部署到了Github Pages上,具体实现见博客架构说明

缘由

Github Pages部署有一个问题,就是不支持HSTS

HTTP Strict Transport Security(通常简称为HSTS)是一个安全功能,它告诉浏览器只能通过 HTTPS 访问当前资源,而不是HTTP。

20220729232638

虽然Github Pages提供了Enforce HTTPS的选项,开启后http请求会301跳转到https 请求。

但是因为返回包缺少Strict-Transport-Security的Header头,导致HSTS校验失败。

20220729234321

为了彻底支持HSTS,决定切换到Cloudflare Pages

部署

Cloudflare Pages部署非常简单,授权Github仓库权限,配置好分支即可,这里不多介绍。

Github Pages上,code分支保存原始文件,master分支保存hugo构建后的文件。

20220729234310

Cloudflare Pages这里生成分支选择master,同时禁用其他分支的自动构建。

这样提交代码后,github actions构建文件提交到master分支,然后触发Cloudflare Pages部署。

这里为什么没有采用Cloudflare Pages的自动构建呢?因为很慢,构建一次要3分钟左右。

采用拉取master构建好的文件的话,只需要7秒左右。

20220729234651

部署好后,Cloudflare Pages的返回也是没有Strict-Transport-SecurityHeader头的。

这里需要通过自定义Header头实现,增加_headers文件,内容如下:

/*
  strict-transport-security: max-age=31536000; includeSubDomains; preload

20220729234942

至此HSTS搞定。

HSTS资料