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

推荐订阅源

Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
B
Blog
Y
Y Combinator Blog
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
小众软件
小众软件
G
Google Developers Blog
云风的 BLOG
云风的 BLOG
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
量子位
The Cloudflare Blog
T
The Blog of Author Tim Ferriss
博客园_首页
B
Blog RSS Feed
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
阮一峰的网络日志
阮一峰的网络日志
L
LangChain Blog
宝玉的分享
宝玉的分享

钟意博客

国家统计局数据查询 MCP 照见·硅·肆 涌现之前 照见·硅·叁 换行重启 照见·硅·贰 钢筋水泥 照见·硅·壹 你好世界 照见·硅·零 序言 大语言模型的不确定性 科艺知识库 ARM64 胶东半岛观察 海光 K100 DCU VLLM 推理环境构建 浅谈RAG Web技术构建桌面应用方案 Spring WebSocket 错误 SpringBoot WebSocket 代理模式、客户端模式 Spring AOP 调用自身失效 window 端口占用但是查不到 Coze同插件不同工具之间代码复用 Pachelbel's Greatest Hit: The Ultimate Canon - 纪念帕海贝尔:终极卡农 圣诞快乐,劳伦斯先生 Merry Christmas Mr. Lawrence
博客多平台负载均衡方案
钟意 · 2025-06-21 · via 钟意博客

博客多平台负载均衡方案

折中式 博客多平台负载均衡方案

前言

此前博客在 Vercel 托管,域名是腾讯云 CNAME 到 Vercel 的加速源,但是最近发现这个方案有如下问题:

  1. 神秘力量:有时网络只位于墙内或墙外,单向访问
  2. 额度耗尽:Vercel 的免费额度是 100G/月,这个月博客居然把额度耗尽
  3. 容灾能力:受单平台限制没有灾害转移能力,包括不限于对网络问题、额度问题的处理

基于以上问题,前天计划周末进行多平台负载均衡,增强博客的稳定性与白嫖性。虽然不能完美解决,但已经得到很大改善。

而且该方案可复用于无状态、一致性的项目,如:博客、文档、SPA、只读类接口、静态加速等等。毕竟额度不够,平台账号数量来凑。

问题

考虑到该方案的可能缺陷,如统计数据、SEO易混乱、部分平台行为不一致、首次 TLS 握手稍慢等等,未来将在此处记录出现的问题与解决方案。

方案

准备过程

  • 服务器:可以是微型服务器,只用来运行负载均衡程序。最好是香港服务器防止国内网络问题。
  • 域名:可以是任何域名,但需要解析到服务器的 IP 地址。
  • 负载均衡程序:可以是任何具备负载均衡程序,如 Nginx、OpenResty 等。
  • 多平台账号:Vercel、Netlify、Cloudflare 等。

设计思路

  1. 部署博客在Vercel等多平台,不需要配置DOMAIN,用默认的域名即可。
    • Hexo等框架通常生成一个静态的 public 文件夹,上传到 Git 仓库中在 Vercel、GitHub Pages、Cloudflare Pages、Netlify 等引用仓库部署。(后续推送会自动触发更新)
    • 需要的话服务器本身也可以托管一份
  2. 域名解析到服务器的IP地址
  3. 服务器安装负载均衡程序,自行搜索《Linux安装Nginx》之类的教程。
  4. 签发证书,新建站点,并配置规则。(配置完无需维护,除非部署平台有增减)

详细教程

视频教程

因为对于服务器新手配置可能过于宽泛与繁琐,录制了视频作为参考。

效果

网站测速

博客国内访问效果

博客国内访问效果

博客海外访问效果

博客海外访问效果

必应索引

测试了必应站点地图索引与网站扫描与往常一致。

局限性与解决思路

需要自建服务器

维护成本高于单纯用平台白嫖部署,但可以选择轻量 VPS(1H/1G 足矣)。

不具备主动健康检查

负载均衡程序本身不具备主动健康检查功能,无法动态剔除故障节点,只能故障转移。可通过 max_fails + 定时 reload 替代;未来可引入 Lua 脚本来实现。

SEO问题

多副本可能被搜索引擎识别为重复,可通过添加 canonical标签、站点地图等指向源站。(Stellar已实现)

部分平台行为不一致

如平台对404错误处理不一致,可添加自定义 404 页面。(Stellar已实现)