一次部署,是当公共边缘与你选择的文件一致时才完成,而不是因为最后一条上传命令退出码为零。操作套件里的两个只读小工具,能让任何能到达主机的机器看到这种一致性。

检查响应头

check-http-headers.sh 抓取一个 URL,并打印响应行、响应头与重定向后的最终 URL:

check-http-headers.sh https://www.xbcatm.com/

最近对本站一次运行的结果:

HTTP/2 200
server: nginx
content-type: text/html; charset=utf-8
content-security-policy: default-src 'self'; script-src 'none'; ...
strict-transport-security: max-age=31536000; includeSubDomains
x-content-type-options: nosniff

注意正文被丢弃,只显示响应线之外的状态行。要比较一次发布前后的变化,保存一份基线并把新的输出与之相减。

读取证书日期

check-tls-expiry.sh 从 TLS 握手读取服务器证书的过期日期,而不改变服务:

check-tls-expiry.sh www.xbcatm.com 30

它打印证书的 notAfter 以及到该日期剩余的天数。如果剩余天数低于阈值,它以非零状态退出——适合加进发布冒烟测试。

发布冒烟测试里它们配合使用

排定发布冒烟测试时,让一个命令确认法着陆状态,另一个确认即将过期的证书。剩下的剩余风险是活动报表之外、真正浏览无法发现的内容——例如重量级第三方脚本,或是仅在大流量出现的缓存问题。一条只读输出现场完成不了这些,仍需一次真实的浏览器会话。

来源