在 Debian 上升级 Nginx(无论是通过 apt 还是源码编译)时,有几个关键事项需要留意,避免升级后服务异常或配置丢失。
nginx -V
which nginx
dpkg -l | grep nginx
apt 安装:用 apt upgrade# 配置目录
cp -r /etc/nginx /etc/nginx.bak
# 网站数据(如有)
cp -r /var/www /var/www.bak
# 如果是源码安装,备份编译参数
nginx -V > nginx_build_options.txt
nginx -t
确保没有语法错误,否则升级后可能启动失败。
sudo apt update
apt list --upgradable | grep nginx
sudo apt upgrade nginx
或全量升级:
sudo apt full-upgrade
nginx -v
nginx -t
sudo systemctl status nginx
如果你是源码安装(非 apt):
使用之前 nginx -V 输出的参数重新编译,避免模块丢失。
make upgrade新版 Nginx 对动态模块(如 ngx_*)版本要求更严格,旧模块可能不兼容。
nginx -t
关注 deprecated 警告
Debian 的 nginx 包可能更新 /etc/nginx/sites-available/default,注意不要被覆盖。
ssl_protocols TLSv1.2 TLSv1.3;
sudo systemctl reload nginx
如果涉及二进制更新:
sudo systemctl restart nginx
journalctl -u nginx -f
tail -f /var/log/nginx/error.log
| 问题 | 说明 |
|---|---|
| 配置被覆盖 | 自定义配置未备份 |
| 模块丢失 | 源码升级未带原参数 |
| 启动失败 | nginx -t 未提前检查 |
| 网站 502 | PHP/FastCGI 未同步升级 |
| TLS 报错 | 协议或加密套件不兼容 |
/etc/nginxnginx -t 检查配置apt update && apt upgrade nginxnginx -tsystemctl reload nginx如果你愿意,可以告诉我:
我可以给你一套针对性的升级方案。