1645 字
8 分钟
我的博客部署方案

前言#

从Wordpress到Typecho到Hexo再到目前的astro,有一个特点是后端慢慢的消失了( 博客从动态变得越来越静态,这里简单分享一下部署博客的心路历程。

最开始博客是部署在一个VPS上面的LNMP环境,后来呢全部变成了docker,再后来到了Hexo这个阶段,连VPS都不需要了。

部署静态页面到OSS#

当时的部署方式是:使用github的CI/CD,每次都把部署好的静态页面上传到阿里云的OSS(我的域名在阿里云备案),但是有以下几个问题:

  • 碎片文件太多,github的CI/CD服务器在国外,根据合规性要求博客得放国内,于是寄。
  • 同名文件情况下sync并不能很好地处理,导致博客文章更新困难(

构建Docker镜像#

所以到astro时代,果断把部署到OSS换成了基于阿里云Docker镜像构建服务的方式,大概是这样的:

flowchart TD A[有代码推送到仓库] --> |阿里云侧收到事件|B[构建镜像] --> C[开容器的服务器拉镜像并重启]

这样挺好,不过也有不足:

  • 镜像构建其实挺慢的(
  • 又回到了上一个时代(划掉),还是需要一个VPS / 容器云运行镜像,成本又有了。

Pages#

Pages顾名思义就是——网页。简单地说可以关联到某个仓库,一有推送就自动构建,然后把页面推到服务器上。

这一方面比较出名的服务如Cloudflare的Pages、Github的Page等,也很多人用这些搭博客。

如果是国际站的话问题就很简单,随便找个Pages就行,所以我也曾经考虑过歪门邪道: 用阿里云个人版ESA(2.99)反代cloudflare pages,不过以ssl shake error结尾,体验并不好,最终还是得回归国内的Pages服务。

实施方案#

既然反代cloudflare pages不行,那就索性用国内的pages好了。

国内的pages有gitee、阿里云和腾讯云。阿里云的在内测,gitee不熟不想用,最终还是堕入企鹅的怀抱。

但域名是阿里云备案的,转移到腾讯云也麻烦,所以最终的方案是:

使用阿里云的ESA + 腾讯云的Pages,再把缓存策略弄好点,这样一来合规性没问题(不会有电话叫你改解析),维持博客的成本也压缩到了3x12 = 36元,和买个国内的虚拟主机差不多。

注册企鹅云Pages#

快速连接:https://console.cloud.tencent.com/edgeone/pages/

绑定Github仓库#

进去选择Pages,然后点击创建项目 -> 导入Git仓库,此时会让你绑定github账号,绑定即可。

限制访问权限#

基于最小权限原则,我估计你可能不太喜欢企鹅云访问你的所有仓库,所以你可以在绑定的时候呢只允许企鹅云访问指定项目,如果你忘了,点击这个链接:https://github.com/settings/installations

image-20251110162913369

在这个页面你可以选择指定的仓库让企鹅云访问,也可以终止/暂停企鹅云对你github仓库的访问权限。

image-20251110163030946

绑定仓库 & 配置项目#

image-20251110163230976

选择仓库后,就可以继续,这里需要注意加速区域的选择,我选择的是含大陆的全球可用区,这个可用区是需要备案的。接下来构建设置选择一下,Hugo Hexo什么的都支持,我用的Astro。接下来一直点下一步就行。

image-20251110163350204

设置完以后企鹅云就开始拉代码、构建、把构建结果推到他们的服务器,实测一轮要1分钟左右,还是可以的。部署结束后就能通过预览域名来看你的博客了。

预览域名的位置是:项目设置 - 域名管理中,以edgeone.run结尾的域名,不过这个域名并不能拿来直接访问,外面不带他cookies访问不进去,就像这样:

image-20251110162508088

所以你还是要老老实实绑定一个你自己的,有备案的域名。如果你和我一样在阿里云备案,就请看下一步,否则你绑定主域名就好了。

配置ESA#

腾讯云这个域名绑定要求你先CNAME到腾讯云的服务器,才能绑定成功。但我们的域名在阿里云接入备案,如果解析到腾讯云就会被他们的客服打电话。所以我们的结构是这样的:

首先企鹅Pages绑定一个辅助域名,然后让ESA加速这个辅助域名,完美!

于是我们在域名管理添加一个自定义域名,根据指引解析到他们的CNAME地址,完事了访问一下看看:

image-20251110164352898

可以访问成功,然后我们就可以去阿里云完成加速。传送门:https://esa.console.aliyun.com/

创建好域名后,进入站点 - “DNS” - 添加记录:

image-20251110164650346

类型改成CNAME,记录呢就写@或者www,源站选择域名,域名呢写你在腾讯云绑定的辅助域名,把回源HOST设置为“跟随源站域名”,这样一来就成功用ESA反代Pages了。

评论#

评论系统用主题推荐的twikoo,不过这个Serverless比较麻烦(根据twikoo的说法,腾讯云免费额度有限,收费的Serverless不敢用怕房子没了),所以还是得传统的容器时代。

twikoo可以用docker容器部署,也很简单:https://twikoo.js.org/backend.html#%E7%A7%81%E6%9C%89%E9%83%A8%E7%BD%B2-docker 。不过为了安全起见(也没人来打我这个破站),我给twikoo也套了一层阿里的CDN。

这样一来,我们的博客也配置好了,可喜可贺可喜可贺。

后录#

国内厂家推出Pages还是很可喜可贺的,很多人的博客主打一个存在主义,一定要有一个,一时兴起了写点,大多数时候吃灰不维护,甚至炸了。访问量呢也是没有的,百度也不怎么收录。在这种情况下免费或低费的Pages就很划算了。至于免费Pages的限速问题——我们好像也跑不到限速那一层,云厂家花边角料跑点你的静态博客还是没啥问题的,炸的概率比你自己托管要低,希望不要被降本增效掉。

最后还是希望阿里云的Pages尽快公测,这样就不需要套一层ESA了,成本更下一层楼。

我的博客部署方案
https://naturesuki.net/posts/2025_11_10_blog_deploy/
作者
Matsuzaka Yuki
发布于
2025-11-10
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时