首页 / 运维
让网站“有人管”:HTTPS、自动续期与日常运维
这篇文章有点特殊——它本身就是为了“让管局相信这个网站有人在维护”而写的。备案通过不等于万事大吉,长期无人更新、无人访问的域名,是可能被注销的。所以除了把站搭起来,还得把运维做成“自动挡”。
一、免费证书:Let's Encrypt + certbot
不用花一分钱买证书。certbot 一条命令就能签发,支持多域名(SAN)。我的根域名和 www 子域名一起申请:
sudo certbot certonly --webroot -w /var/www/acme \
-d liyunfei.cn -d www.liyunfei.cn
二、自动续期,别等过期才慌
Let's Encrypt 证书只有 90 天有效期。certbot 装好后自带定时任务,快到期会自动续。关键是配一个“续期成功后重载 Nginx”的钩子,否则新证书不会生效:
# /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh
#!/bin/bash
systemctl reload nginx
我会定期看一眼证书到期日,确认自动续期真的在跑,而不是“以为在跑”。
多域名场景我习惯一张 SAN 证书覆盖同组域名,续期只维护一份;新加域名就单独再申请一张,互不干扰,避免动到正在用的证书。
三、Nginx 做统一入口
所有对外域名都从 Nginx 收口:80 端口统一 301 跳 HTTPS,443 再做反代。静态站点、小程序接口、后台,各走各的 server 块,清晰也好排错。静态内容直接由 Nginx 返回,不走应用进程。
四、监控三件事
- 容器健康:Docker 健康检查 + 状态查看,挂了能第一时间发现;
- 接口可用性:关键接口定时探活,返回非 200 就告警;
- 证书有效期:别让证书悄悄过期导致全站不可用。
五、备案后的“存在感”维护
这正是我建这个博客的初衷:保持网站有真实内容、有更新节奏。管局核查时,一个长期空白或明显停摆的站点风险更高。所以我把这几篇实战笔记放上来,既记录自己的学习,也让站点“活”着。
到这里,从选型、部署、安全、数据库、性能到运维,这条建站的主线就串完了。技术不求新,够用、稳、有人管,最重要。