前两篇写了 EdgeOne Pages 的部署流程和域名购买流程,但部署这件事没有就此结束——真实的使用过程中又冒出一连串问题:备案号要不要挂、默认域名为什么打不开、要不要买服务器、域名怎么绑。这篇按重点把这些问题逐一记下来,也记录最终的架构决策。
一、备案号必须挂在网站底部
备案通过后会拿到一个备案号(形如 粤ICP备2026XXXXXX号-1),它有硬性的展示义务:
- 展示在每个页面底部,并链接到工信部系统
https://beian.miit.gov.cn/ - 接入商会定期扫描核查,未挂会收到整改通知,置之不理会被注销备案
- 这行字不是平台自动加的,是开发者自己写进网站 Footer 的
- 多数地区还要求上线后 30 天内做公安备案(
beian.mps.gov.cn),底部再挂一行
备案号本质是”年检贴纸”:不是给访客看的,是给扫描脚本看的。一行代码换备案资格不作废,没有理由省。
二、备案为什么强制:属地管理与实名溯源
- 服务器/CDN 节点在境内 = 服务行为发生在境内 = 纳入境内监管
- 备案的本质是”域名 ↔ 真实主体 ↔ 接入商”三者绑定登记,出了问题可溯源
- 云商作为接入商有法定审核义务:不拦截未备案域名,违法的是云商自己——所以 EdgeOne 返回 401 不是刁难,是合规
- 境外托管(GitHub Pages 等)不受境内监管,代价是大陆访问没有保障——这是同一枚硬币的两面
三、Gitee Pages 之死说明了什么
Gitee Pages 并非”没备案就上线了”,而是平台代持模式:gitee.io 主域已备案 + 用户实名 + 平台承担内容审核。问题在于这个模式收益为零(纯免费)、审核义务无限(每个子域名都是平台承接的内容),2024 年以”不可抗原因”下线。
启示:平台代持的路在国内已经陆续关闭(CODING Pages 同期下线),个人正式站只剩”自己备案 + 自己域名”一条稳定路径。
四、EdgeOne Pages 默认域名的两个坑
- 默认域名
*.edgeone.cool是预览专用,带登录鉴权:自己浏览器能开,复制裸链接到别的浏览器就是 401,无法关闭 - 免费层加速区域不含中国大陆(不含 MLC),大陆访问被拦截
- 要大陆加速必须绑定已备案域名——免费层不会绕开这条规则
五、备案必须持有云资源:备案服务码机制
这是整个流程里最关键的一环:
- 走云商备案必须提供”备案服务码/授权码”,而服务码只能由正式购买的、包月 3 个月以上的云资源生成(ECS、轻量应用服务器等)
- 试用机没有资格:试用期不足、非正式购买,既不能出码,到期释放还会连累备案失效
- EdgeOne Pages 免费层不提供备案服务码
- 各家规则一致,最便宜的合规资源就是入门服务器:阿里云 ECS 99 计划(2C2G,续费同价 99 元/年)是目前的最优解
六、域名购买的三个原则
- 看续费价,不看首年:1 元促销的后缀续费动辄 60~140 元/年;
.cn续费约 35 元最稳 - 打算备案就在国内注册商买(阿里云/腾讯云),流程打通最省事;域名实名信息必须与备案人一致
- 命名与 GitHub ID 一致是最优解:简历上博客与 GitHub 互相印证,且个人站不锁内容形态
七、www 前缀是怎么来的
www 不是域名的一部分,是 DNS 里的主机名:早期一台服务器跑多种服务,按用途命名(www / mail / ftp)。如今纯粹是习惯保留。实用知识:
- 裸域与
www都应解析,选一个为主、另一个 301 跳转 - DNS 规范里裸域不能用 CNAME(只能 A 记录),接入 CDN 时经常要靠
www子域绕开
八、IP + 端口 vs 域名
境内服务器的公网 IP + 已放行端口,大陆任何网络都能直接访问(备案管的是域名,不管 IP)。但 IP 模式只适合调试和演示:
- 几乎没有 CA 给普通 IP 签 HTTPS 证书
- 端口直接暴露公网,被扫描爆破的面大
- IP 是租的,服务器释放/更换后所有链接作废
- 多项目只能靠端口号区分,无法像域名那样优雅分流
规范姿势:安全组只开 80/443 + SSH,后端服务监听 127.0.0.1 由 Nginx 反代,对外只见域名。
九、GitHub Pages 跑不了 Java 后端
GitHub Pages 是纯静态托管,上面没有任何进程——jar 包、JVM、数据库都放不了。Java 前后端分离项目的正确拆法:
- 前端构建产物 → 静态托管(Pages 或服务器)
- 后端 jar → 能跑 JVM 的服务器,
java -jar+ systemd 守护 - Nginx 反代:
/指向前端,/api转发到 Java 进程
十、一台服务器共部署多个项目
静态博客与 Java 项目放同一台 2C2G 服务器完全可行,靠 Nginx 的域名(server_name)虚拟主机区分:
ECS
├── Nginx :80/:443(唯一对外入口)
│ ├── blog.example.com → /var/www/blog(静态博客,纯文件)
│ └── demo.example.com → /var/www/java-front
│ └── /api/* → 127.0.0.1:8080(Spring Boot)
└── 两套 CI/CD 各写各的目录
注意事项:JVM 必须显式限内存(-Xms256m -Xmx512m),全机只允许一个反代占 80/443,部署目录分开。
十一、最终架构定型
有云服务器之后,EdgeOne Pages 就没有存在意义了。最终收敛为:
git push
└→ GitHub Actions 构建
├→ GitHub Pages(境外端,现状不动)
└→ rsync dist → 阿里云 ECS + Caddy(境内端,备案后绑域名)
- 年成本 ≈ 170 元(域名 ~70 + ECS 99 续费同价),无其他
- 服务器兼任 Linux 练手环境 + 未来 Java 全栈项目宿主机
- 境内速度由自己的境内服务器直连保证,不再依赖任何免费托管层的脸色
时间线
- 域名今天就能绑 GitHub Pages(境外托管无需备案),正式地址立刻上岗
- 试用机(若有)用 IP + 端口练手部署演练,到期释放零损失
- 买 99 元 ECS → 生成备案服务码 → 提交备案 → 等待 1~2 周
- 备案下来:域名解析切到 ECS,Footer 挂备案号,国内访问直连提速,全剧终
一句话总结:难的不是技术,是”正式”二字在国内的定义。制度链条锁死了”大陆加速 → 备案 → 云资源”这条路,但 170 元/年已是地板价,且买到的服务器是真实资产——想通了这一点,剩下的全是照单执行。