从 0 到上线 网站建设实训课
Reference · 随时可查

门禁与红线

四道门禁、十次破坏性演练、十一条红线。这一页不是讲义,是出事时要翻的那一页。

01

关键路径

14 个环节 · 4 道门禁

从立项到维护,每一步都有产出物。门禁的标记不是装饰:它表示这一步卡住时,去改代码是无效动作。

立项 《站点方案卡》 定路线、定域名、先问备案能不能过
本地环境与通道自检 通道体检报告 能不能推、走哪条通道,先有结论
建仓 · 首个提交 可推送的空仓库 SSH 打通,远端能看到提交
买服务器 可用快照 先开快照再动配置
买域名 + 实名 解析记录表 域名持有者要和备案主体一致
门禁① ICP 备案 备案号 必须用已购服务器作接入商;此期间网站不得对外
服务器初始化 环境自检通过 加固、nginx、目录、属主
门禁② 解析生效 dig 返回目标 IP 备案通过后才对外解析
门禁③ 证书 + 强制 HTTPS 全站 https 证书签下来,http 自动跳 https
首次手工上线 三层核验全过 先手动跑通,再谈自动化;三层核验
自动化 一条可用流水线 CI 推送 / 服务器拉取,双通道兜底
发版 tag + Release 版本号单一来源 → tag → Release
门禁④ 公安备案 两个备案号 上线后 30 日内
维护循环 体检脚本 巡检、备份、回滚、复盘
02

四道门禁的归因

共同点:卡住时不是代码问题。把现象和真实原因对上,能省掉一整天的瞎试。

门禁卡住的典型现象真实原因
① ICP 备案域名解析正常,但 80 / 443 完全没有响应未备案,接入商在入口拦截
② 解析生效本机能打开,别人打不开DNS 尚未传播 / 只改了本机 hosts
③ 证书https 报证书错误或直接拒绝连接域名未生效就申请,或自动续期已失败
④ 公安备案站点正常,但收到整改通知上线满 30 日仍未办理
03

十次破坏性演练

10 个阶段,各一次

人真正学会是靠修,不是靠读。每一讲都有正常路径的练习,这里再补一层:故意搞坏,再修回来。 十条都是可逆的,且都写明了恢复路径 —— 在测试环境做,别拿生产练手。

S0起手式

拔掉网线,把你要用的工具从头点一遍,记下哪一步立刻卡住。目的是分清「本机能做的」和「必须有网才能做的」——后者才是你需要提前准备的通道。

S1版本管理

新建一个临时仓库,提交一次后先 `git branch backup`,再 `git reset --hard HEAD~1`,然后从 backup 恢复。亲手验证「提交是可恢复的」,比背十遍命令有用。

S2买与备

把备案材料故意漏掉一页证件再提交,看驳回理由怎么写。在真项目上被卡一次要等好几天,在这里被卡只要几分钟。

S3上线

把 nginx server 块里的 root 路径故意改错一位:`nginx -t` 照样通过,页面却 404。改回来。这一步是为了分清「配置语法对」和「路径对」是两件事。

S4自动化

把产物版本号改小再 push,看降级护栏是否把你拦下;改回来再推一次,确认恢复正常。没被拦过,就不知道护栏有没有接电。

S5后台 · 数据 · 权限 · 密钥 · 打通

建一张临时表写几行数据,做一次备份,然后删表,只从备份恢复。记下耗时和丢了哪几行——这就是你真实的数据底线。

S6数据合规与风险

从服务器日志抽 20 行原样存成 txt,再按脱敏规则处理一遍,逐行比对找出漏掉的字段。漏在哪,说明你的规则少了一条。

S7维护

把测试机磁盘塞到 90%,看体检脚本退出码是否从「正常」跳到「告警」。跳了才算接通,没跳说明阈值写错了。

S8综合

照交接文档发一次版,故意跳过其中一步,记录「漏了会怎样」。交接文档的价值,全在别人漏掉一步时还能不能被发现。

S9通知与触达

把邮件通知开关关掉(MAIL_ENABLED=false)重启服务,再提交一条留言:确认留言照常入库、只是不发信。这条演练是为了记住「通知失败 ≠ 数据丢失」——很多人一停邮件就以为表单坏了。

04

十一条通用红线

不分阶段,全程适用

这些不是「最佳实践」,是底线。违反其中任何一条,出了问题都不该算意外。

  1. 改前先读,改后回读。不接受「应该改好了」。
  2. 一次只改一件事,一次只提交一件事。
  3. 密钥永不进仓库,永不出现在截图里。
  4. 生产目录只允许部署脚本写,人上服务器只读优先。
  5. 没演练过的备份,不算备份。
  6. 发布必须给「已上线 / 未上线」的结论,不拿绿勾当证据。
  7. 多站共存时,只动自己的 web 根目录。
  8. 权限最小化:能只读就别给写。
  9. 不确定就停下问,不猜、不编、不用「通常」糊过去。
  10. 任何「顺手优化」都要先回答:不改会怎样。
  11. 自造的词必须在使用处给定义,否则就是给别人留债。