posts/domain-deploy-full-guide.md

博客域名部署全流程实录:从本地到全球可访问(含全部踩坑)

📅 发布日期2026-09-02
✏️ 更新日期2026-09-09
前端与建站 教程 25 分钟阅读 #部署#EdgeOne#域名#HTTPS#腾讯云

博客域名部署全流程实录:从本地到全球可访问

本文是本博客上线过程的真实记录。写它是因为:过程比预想曲折得多——光是"请输入正确格式的域名"就卡了很久,中间还有 CNAME 填错、节点不同步、证书警告等一连串坑。把这些全记下来,供自己以后换域名/换电脑参考,也供想给个人站点上线的朋友避坑。


#一、整体架构与路线图

txt本地 blog 目录(node server.js,端口 8766)─── 日常写作、改样式
        │
        ▼  node build-static.js(零依赖静态化)
   dist/ 静态产物 ──── 打 zip 上传 ────► 腾讯云 EdgeOne Pages(项目 my-blog)
        │
        ▼  绑定自定义域名 shaohua-lab.top(本文主题)
   全球边缘节点 + 免费 DV 证书 + 强制 HTTPS = 全球可访问
  • 本地版:node server.js → http://localhost:8766(写作预览用)
  • 线上版:https://shaohua-lab.top(EdgeOne Pages 托管,全站静态化)
  • 核心事实:EdgeOne Pages 是腾讯云的边缘函数静态托管,免费额度足够个人博客长期跑,未备案域名也能用(服务走边缘节点,不强制大陆节点)。

#二、域名选购:后缀怎么选才划算

#2.1 候选后缀对比(2026 年行情,人民币)

后缀首年价续费价/年特点建议
.com60~9060~90最主流、最贵有预算首选,但便宜好记的早就被抢光
.top14(促销)约 34便宜、够用个人博客性价比之选(本文选择)
.xyz / .site10~2030~80便宜但续费波动大可考虑,注意看续费价
.cn30 左右30~60国内后缀,实名必须国内备案/合规场景更顺
.io / .dev 等100+100+程序员情怀价预算充裕再说

关键教训:首年的"促销价"不是真实成本,续费价才是。买之前一定查两个数:首年价 + 续费价。

#2.2 本次选购实录

  • 想要的名字 shaohua.top 被抢注,溢价盘标价 268 元——溢价域名果断放弃,不惯着。
  • 最终定了 shaohua-lab.top:首年 14 元(促销),续费约 34 元/年;.top 后缀对个人博客完全够用,搜索/社交场景没有明显劣势。
  • 购买时只买域名本身,三样附加服务一律不勾:
  • ❌ 轻量应用服务器(不需要,托管在 EdgeOne Pages)
  • ❌ DNS 解析付费版(腾讯云自带免费 DNS 够用)
  • ❌ SSL 证书付费版(EdgeOne 绑定域名后自动签发免费证书)
  • 结算前需创建域名模板(实名认证):传身份证正反面,几分钟过审。未实名前解析不对外生效。

#2.3 备案到底要不要?

场景是否需要备案
域名 + 大陆服务器(轻量/CVM/COS 大陆地域)需要 ICP 备案
域名 + EdgeOne Pages / 境外托管不需要(本文路线)

一句话:备案和你的网站能不能用 HTTPS 毫无关系。证书问题是证书的事(见坑 5),别被"没备案所以证书警告"的传言误导。将来若要上大陆服务器再补备案即可。

#三、EdgeOne Pages 部署(线上版第一站)

  1. 腾讯云控制台 → EdgeOne → Pages → 新建项目,命名如 my-blog;
  2. 上传方式二选一:直接把 dist/ 目录拖进去,或打 zip 上传(本次用 zip,30 个文件约 93KB);
  3. 部署完成后会得到一个预览域名(如 my-blog-dpp2q6m2b7xl.edgeone.cool):
  • ⚠️ 预览域名约 3 小时时效,且访问要带 ?eo_token 参数;
  • 要变永久,必须绑定自己的自定义域名(下一节)。

#四、绑定自定义域名全流程(核心)

#第 1 步:添加自定义域名

EdgeOne Pages → my-blog → 设置 → 自定义域名 → 添加 shaohua-lab.top。

#第 2 步:归属权验证(TXT 记录)

EdgeOne 会给出三条信息,去腾讯云「域名解析」里照抄:

字段填写内容
主机记录edgeonereclaim(EdgeOne 给)
记录类型TXT
记录值reclaim-xxx(EdgeOne 给的随机串)

保存后直接可以点「验证」——腾讯云提示的"24~48 小时生效"是最坏情况说明,实际实测 1 分钟全球生效(见坑 2)。

#第 3 步:添加 CNAME 记录(本次最大坑,见坑 3)

字段填写内容
主机记录@(代表根域名)
记录类型CNAME
记录值EdgeOne 给的完整地址原样照抄,如 shaohua-lab.top.pages.dnsoe5.com

#第 4 步:等待边缘节点同步 + 签发证书

  • 绑定后 EdgeOne 会自动部署域名配置,全球边缘节点逐台同步,约 10~30 分钟收敛(期间可能"时好时坏",见坑 4);
  • 去「域名管理 → HTTPS 配置」申请免费 DV 证书(0 元,自动完成验证,几分钟签发)。没签证书前浏览器一定弹"不安全"(见坑 5)。

#第 5 步:开启三个安全开关(建议全开)

开关建议说明
强制 HTTPS✅ 开重定向方式选 301(永久跳转,对 SEO 友好)
HSTS✅ 开(证书生效后)缓存时间 365 天、包含子域名、预加载均可开;含义 = 浏览器强制该域名永远走 HTTPS
OCSP 装订✅ 开纯性能优化,零副作用

HSTS「预加载」开启后本域名终身强制 HTTPS(EdgeOne 只下发声明头,不会自动提交预载名单,所以可逆,只是要等缓存过期)。只要没有退回 HTTP 的计划,开着没问题。

#完成标准(自查清单)

  • [ ] http:// 访问自动 301 跳 https://
  • [ ] 浏览器无任何证书警告(手机/电脑/平板各试一次)
  • [ ] 证书 CN 等于你的域名(如 CN=shaohua-lab.top),非默认兜底证书
  • [ ] 多网络(WiFi/流量)都能打开

#五、踩坑全记录(按发生顺序)

#坑 1:一直提示「请输入正确格式的域名」

  • 现象:明明切了英文输入法、看着也是半角,填 shaohua-lab.top 还是报格式错误。
  • 根因:报错的几乎从不是"域名本身",而是粘贴内容带隐形杂质:
  • 带了 https:// 或 www. 前缀(购买搜索框不允许);
  • 全角符号(-全角连字符、.全角点);
  • 尾部空格 / 反斜杠 / 斜杠;
  • 从微信/Word 复制带进来的隐藏换行、弯引号。
  • 解决:用「复制按钮」产生纯净字符串再粘贴;粘贴后按 Home/End 检查首尾有没有多余字符;不同输入框要求不同(购买框只填裸域名,地址栏才允许完整 URL)。
  • 教训:格式校验失败先怀疑"看不见的字符",不要怀疑自己的输入法。

#坑 2:TXT 记录提示"最快 30 分钟、一般 24~48 小时生效"

  • 现象:保存 TXT 后腾讯云弹出大段免责声明,看着要等一两天。
  • 根因:这是运营商 DNS 缓存的最坏情况说明,纯免责声明。
  • 解决:不干等,直接主动探测:

```bash
# 分别问阿里/腾讯/谷歌的公共 DNS
nslookup -type=TXT edgeonereclaim.shaohua-lab.top 223.5.5.5
nslookup -type=TXT edgeonereclaim.shaohua-lab.top 119.29.29.29
nslookup -type=TXT edgeonereclaim.shaohua-lab.top 8.8.8.8
```
实测保存后 1 分钟四个公共 DNS 全部返回,直接去点「验证」,秒过。

  • 教训:解析生效与否以"公共 DNS 实际查询结果"为准,别被页面文案吓住。

#坑 3:CNAME 记录值填错 —— 本次最大的坑

  • 现象:解析添加 CNAME @ → pages.dnsoe5.com 后,等了 5 分钟公共 DNS 仍然是 NXDOMAIN(域名不存在),网站完全打不开。
  • 根因:想当然地以为"记录值要去掉自己域名前缀"(常见 CDN 的惯性),但 EdgeOne Pages 的分配方式是每域名一条记录:
  • ❌ pages.dnsoe5.com → 实测 NXDOMAIN(这个裸地址根本不存在);
  • ✅ shaohua-lab.top.pages.dnsoe5.com → 实测解析到 43.174.246.43 / 43.174.247.43。
  • 控制台显示的 shaohua-lab.top.pages.dnsoe5.com 是要原样照抄的记录值,不是"效果预览"。
  • 解决:把记录值改成 EdgeOne 给的完整地址,几分钟后四大公共 DNS 全部生效。
  • 教训:"填什么值"以目标地址能不能解析为准绳——填之前先 nslookup 一下候选值,能解析到 IP 的那个才是对的。不要拿别家 CDN 的惯性套 EdgeOne。

#坑 4:部署后"时好时坏"——10 次请求一半超时

  • 现象:CNAME 生效后,连续请求有时 200、有时 000(连接超时),抓狂。
  • 根因:EdgeOne 域名配置是全球边缘节点逐台同步的。DNS 返回的两个节点(43.174.246.43 / 43.174.247.43)里,一个已就绪、一个还在同步,轮换到没就绪的节点就超时。
  • 解决:不 panic,等收敛(实测约 20 分钟);用 curl --resolve 定向测试单节点确认"哪个好了":

```bash
curl -k --resolve shaohua-lab.top:443:43.174.247.43 https://shaohua-lab.top
```

  • 教训:全球 CDN 上线是非瞬时一致的,短时间"时好时坏"是正常过程,别误判成配置错误去改记录。

#坑 5:全设备弹"证书过期 / 不安全网站"

  • 现象:手机、电脑、平板都能打开页面,但全部弹证书警告;页面显示"证书无效/过期/不安全"(不同浏览器文案不同)。
  • 根因:能访问 ≠ 证书没问题。当时证书尚未签发,服务器下发的是腾讯的默认兜底证书 CN=*.cdn.myqcloud.com——证书和访问的域名不匹配,浏览器一律拦截。
  • 解决:
  1. EdgeOne 控制台 → 域名管理 → HTTPS 配置(初始状态"未配置");
  2. 点配置/申请 → 选免费 DV 证书(自动签发)——不要选付费的,也不要手动传证书文件;
  3. 几分钟后状态变「已生效」,浏览器警告自动消失(手机若还报,刷新或清一下站点数据)。
  • 验证方法(抓取服务器真实下发的证书):

```bash
# 看 subject 是不是你的域名
openssl s_client -connect shaohua-lab.top:443 -servername shaohua-lab.top
# 或 PowerShell 抓 RemoteCertificate.Subject
```
签发前 CN=*.cdn.myqcloud.com、签发后 CN=shaohua-lab.top(TrustAsia DV CA)。

  • 教训:证书和备案是两回事(见 2.3)——不用额外交钱、不用等审核,免费 DV 证书几分钟搞定,只是需要你去控制台点一下"申请"。

#坑 6:找不到「验证」按钮 / 控制台入口 404

  • 现象:归属权验证页面找不到"验证"按钮;后来连 cloud.tencent.com/edgeone 都打不开(404)。
  • 根因:
  • 验证按钮在页面最底部(步骤 3 的正下方),不滚动看不到;
  • cloud.tencent.com/edgeone 是产品介绍页,控制台是 console.cloud.tencent.com/edgeone——两者混淆;且控制台入口随版本更新位置会变("自定义域名"可能在"域名管理"里)。
  • 解决:
  • 找回入口第一招:浏览器历史记录搜 edgeone(你访问过,一定在记录里);
  • 标准入口:登录 console.cloud.tencent.com → 搜索"EdgeOne" → Pages → my-blog → 自定义域名/域名管理;
  • 兜底:换浏览器 / 隐身窗口重试,排除缓存干扰。
  • 教训:控制台操作先认准"console"开头的地址;页面长时间找不到,用历史记录兜底。

#坑 7:本机 curl 报 "Could not resolve host",但公共 DNS 明明是好的

  • 现象:公共 DNS(8.8.8.8 / 223.5.5.5)都已返回 IP,本机 curl 却解析失败;在改 CNAME 之前本地残留了旧结果。
  • 根因:Windows 本地 DNS 负缓存(NXDONMAIN 也会被缓存)。
  • 解决:

```bash
ipconfig /flushdns
```

  • 教训:排查"明明生效了却打不开"时,先清本地缓存再测。

#坑 8:上传 zip 报「文件名称包含非法字符」

  • 现象:部署包上传 EdgeOne Pages 报「文件名称包含非法字符(\ / : * ? " < > | )」;文件名本身纯 ASCII、用文件选择器选择仍然报错。
  • 根因:Windows Compress-Archive(PowerShell/右键压缩)在 zip 内部用反斜杠 \ 分隔路径;EdgeOne 校验时把 \ 判为非法。判断方法:.NET ZipFile 打开包看条目名——api\posts.json 是反斜杠问题包,api/posts.json 才是合规包。
  • 解决:改用本仓库 pack-dist.ps1(.NET 手工建条目、强制正斜杠)打包,一键入口 发布打包.bat;压缩前先自行核验条目分隔符。
  • 教训:向 Web 平台传 zip 前,先确认压缩工具生成的是正斜杠路径;报错时检查 zip 内部条目,而非文件名本身。

#六、费用总结与长期运维

#6.1 花费清单

项目费用说明
域名 shaohua-lab.top首年 14 元,续费约 34 元/年唯一硬性开销
EdgeOne Pages 托管免费个人博客流量在免费额度内
SSL 证书免费EdgeOne 自动签发 DV 证书,到期自动续(本次签至 2026-12-01)
DNS 解析免费腾讯云自带

结论:一年总成本约 14~34 元,性价比极高。

#6.2 日常维护流程(写文章 → 上线)

bash# 1. 本地写文章:在 posts/ 新建 xxx.md(front matter 必填)
# 2. 本地预览:node server.js → http://localhost:8766
# 3. 静态化重建:
node build-static.js      # 重新生成 dist/
# 4. 重新打 zip(或用 dist/ 目录直接上传)
# 5. EdgeOne Pages → my-blog → 上传新产物 → 部署

部署是全量覆盖式的:每次上传整套 dist。文件名带版本号(css/js 已带 v3/v2)可避免浏览器缓存旧版。

#6.3 备份与换机

  • 一键打包:双击 迁移打包.bat → 生成「博客迁移包.zip」(含全部文章、知识库、脚本);
  • 换机三步:拷包 → 新机解压 → 装 Node 双击 start-server.bat;
  • 部署相关凭证(腾讯云账号/实名模板)与代码分开保管。

#6.4 未来可选项

  • www 前缀:在解析里加一条 www → CNAME → 同目标地址,www 也能访问(EdgeOne 会给 www 同样签发证书);
  • 更短域名:.top 首年促销常有,续费有波动,若以后预算上来了可考虑换 .com;
  • 大陆节点加速:若流量变大需要大陆节点专属能力,届时再评估 ICP 备案(见 2.3)。

#七、避坑速查表(一页版)

现象根因一句解决
提示"请输入正确格式的域名"粘贴内容带隐形杂质/多前缀干净字符串整串复制,检查首尾
TXT 提示 24~48 小时生效免责声明直接 nslookup 公共 DNS,1 分钟即生效
填了 CNAME 还是 NXDOMAIN记录值少了域名前缀整串照抄 EdgeOne 给的值,先 nslookup 验证
部署后时好时坏边缘节点逐台同步等 10~30 分钟收敛,定向 --resolve 验证
全设备证书警告证书未签发,下发兜底证书域名管理 → 申请免费 DV 证书(0 元)
找不到验证按钮/控制台页面太长/产品页与控制台混淆历史记录找回 + console 开头的地址
本地解析失败但线上正常Windows DNS 负缓存ipconfig /flushdns

#八、结语

从"请输入正确格式的域名"开始,到全球四个公共 DNS 全绿、双节点证书验证通过,前后经历:格式排查 → TXT 验证 → CNAME 纠偏 → 节点收敛 → 证书签发 → HSTS 加固。最贵的学费是 CNAME 那一下——永远用"目标地址能不能解析"来检验配置,而不是凭惯性猜。

现在这台小站:每年 14~34 元的成本、免费证书自动续签、全球边缘节点加速,静静地服务着来查 STM32/ESP32 驱动资料的朋友们。希望这份实录让你的上线之路少绕几个弯。🛰️

#九、更新日志

📝共 3 条记录
日期类型更新内容
2026-09-02新增首次发布
2026-09-03新增文末新增「更新日志」记录区(首次发布补记)
2026-09-09新增「五、踩坑全记录」补充坑 8:上传 zip 报「文件名称包含非法字符」的根因(zip 内部反斜杠路径)与正斜杠打包方案