KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA

上线速查 Runbook — keel 龙骨

域名申请与 HTTPS 上线 的参考信息:上线速查 Runbook

一页纸版本。按编号顺序执行,每一步后面都有「不通过就停下」的判据。

阶段一:域名(第 01–02 章)

[ ] 域名已购、实名通过、状态正常(非 Serverhold)
[ ] 已确认是否需要 ICP 备案(看服务器地域)
[ ] 备案号已在页脚展示(若需要)

阶段二:解析(第 03 章)

dig xxxxxx.cn +short          # 期望:203.0.113.10
dig www.xxxxxx.cn +short      # 期望:203.0.113.10
dig @8.8.8.8 www.xxxxxx.cn +short   # 交叉验证

不通过 → 确认权威 DNS 后台是不是你改的那个(dig NS +short)。

阶段三:服务器(第 04 章)

ping -c 4 203.0.113.10                  # 主机在线?
curl -I --max-time 5 http://203.0.113.10/   # 80 可达?
sudo nginx -t                           # 配置语法
sudo ss -lntp | grep -E ':80|:443'      # 在监听?

不通过 → 依次查:云平台安全组 → iptables -L -n → nginx 是否启动。

阶段四:证书(第 05 章)

openssl x509 -in /etc/nginx/ssl/xxxxxx.cn_bundle.crt -noout -issuer -dates -ext subjectAltName
# 私钥匹配校验:两条 md5 必须一致
openssl x509 -noout -pubkey -in .../bundle.crt | openssl md5
openssl rsa  -noout -pubkey -in .../key        | openssl md5
ls -l /etc/nginx/ssl/     # crt 644 / key 600

阶段五:nginx HTTPS(第 06 章)

nginx -v                 # 决定 http2 写法
sudo cp /etc/nginx/sites-enabled/learning /tmp/learning.bak
sudo nginx -t            # 必须 pass
sudo systemctl reload nginx   # 用 reload,不是 restart

配置要点:

listen 443 ssl http2;                      # nginx < 1.25.1
ssl_certificate     .../_bundle.crt;       # 必须带中间证书
ssl_certificate_key .../.key;
# 80 侧保留 /.well-known/acme-challenge/ 不被 301
# 转发层带 X-Forwarded-Proto $scheme

阶段六:全站 https(第 07 章)

curl -s https://www.xxxxxx.cn/learning/ | grep -c 'http://'   # 期望 0
curl -s https://www.xxxxxx.cn/learning/sitemap.xml | grep -c 'http://'  # 期望 0
curl -s https://www.xxxxxx.cn/robots.txt

改了本地代码但线上没变 → 检查发布流程是否包含前端源码同步与重新构建:
curl -s ... | grep -oE 'assets/[^"]+\.js' 与本地 dist/assets/ 比对。

阶段七:生命周期(第 08 章)

openssl x509 -in /etc/nginx/ssl/xxxxxx.cn_bundle.crt -noout -enddate
sudo certbot renew --dry-run     # 若用 certbot

日历提醒:到期前 30 天开始续期,前 7 天必须完成。

一键总验收

./verify-site.sh     # 脚本见第 08 章第四节

出事时的回滚(30 秒内)

sudo cp /tmp/learning.bak /etc/nginx/sites-enabled/learning
sudo nginx -t && sudo systemctl reload nginx

黄金规则:改配置前先备份,nginx -t 不过就不要 reload。

进入 keel 阅读