页面能打开,只代表运维刚刚开始
网站上线后的第一个安静星期,最适合建立习惯。不要等故障发生才第一次找日志,也不要到误删文件后才问有没有备份。对小型静态网站来说,每天五分钟检查、每周一次备份复核,就能建立比“出事再说”可靠得多的底线。
建立一份私密运维手册,记录服务器服务商、公网 IP、域名注册商、DNS 提供方、SSH 用户、网站根目录、Caddyfile 路径、发布命令、备份位置和紧急联系人。密码、私钥和恢复码单独保存,不能直接写进这份可能分享给协作者的文档。
每天五分钟健康检查
systemctl is-active caddy
curl -fsS -o /dev/null -w '%{http_code} %{time_total}s\n' https://example.com/
df -h / /var
free -h
uptime
预期看到 caddy 为 active,正式首页返回 200,磁盘还有足够余量,内存没有持续异常压力。Linux 使用内存做缓存并不等于“内存快用完”,更值得关注的是 available、Swap 是否频繁增长、服务是否被重启,以及一周内的趋势。
还要从服务器之外检查公网地址。本机 curl 成功,不能证明读者经过 DNS、运营商网络和云防火墙也能到达。
带着问题读日志
日志里出现 warning 不等于网站一定故障。先限定时间,再带着问题查:Caddy 是否重启过?证书有没有续期失败?用户请求是否到过这台机器?
systemctl status caddy --no-pager
journalctl -u caddy --since '1 hour ago' --no-pager
journalctl -p warning --since today --no-pager
排错时记录准确时间、网址和现象,再去对照日志。不要把访问令牌、Cookie、大量用户 IP 或完整私密日志直接贴到公开论坛。
制作带时间版本的网站备份
备份留在同一台服务器,只能算第一份副本,不是完整备份。先创建受保护目录,归档网站和 Caddy 配置,计算校验值,再把归档传到你控制的另一台机器或存储账号。
sudo install -d -m 0700 /var/backups/my-first-site
sudo tar -czf /var/backups/my-first-site/site-$(date +%F-%H%M).tar.gz -C /var/www/my-first-site .
sudo cp /etc/caddy/Caddyfile /var/backups/my-first-site/Caddyfile-$(date +%F-%H%M)
sudo sha256sum /var/backups/my-first-site/*
以后网站增加数据库和用户上传后,复制文件就不够了。必须按对应软件的官方方法制作一致性数据库导出,同时保存上传文件和关键配置。备份前后都要确认磁盘空间,避免归档过程把系统盘写满。
不碰线上目录,先做恢复演练
明确选择一个归档,先列出内容,再解压到临时测试目录。第一次演练绝不能直接覆盖 /var/www/my-first-site。
mkdir -p /tmp/my-first-site-restore-test
tar -tzf /var/backups/my-first-site/site-YYYY-MM-DD-HHMM.tar.gz | head
tar -xzf /var/backups/my-first-site/site-YYYY-MM-DD-HHMM.tar.gz -C /tmp/my-first-site-restore-test
find /tmp/my-first-site-restore-test -maxdepth 2 -type f -print
把占位文件名换成真实归档。打开恢复后的 index.html,核对校验值,或者只绑定 127.0.0.1 做本地预览。只有当你能找到、下载、解密、解压并看懂其中内容时,这份备份才值得相信。
告警和维护节奏
最低限度监控三件事:HTTPS 请求失败、磁盘空间过低、服务反复重启。外部可用性监控从读者路线访问,比只在服务器里跑脚本更接近真实体验。每周查看补丁,升级前备份,升级后验证页面,并把变更写进成长记录。
自动删除旧备份前先定义保留策略,例如保留七天的每日副本和数月的月度副本。先只打印将要清理的文件列表,人工核对多次,再考虑自动删除;不要把未经验证的通配符放进 root 定时任务。
我的心得
我很长时间都认为“服务器上有一个 tar 文件”就叫备份,但服务器整盘故障时它也会一起消失。真正有用的变化不是换了更复杂的工具,而是多一份异地副本,再在日历里固定每月把一个归档恢复到临时目录。
完成标准
你能发现网站不可用,能找到最近一小时日志,能说出最新异地备份在哪里,并能把它恢复到测试目录,网站才具备继续增长的基础。最后一篇把可用的网站整理成 百度和 Google 能发现、能理解的页面。