Ubuntu升级Nginx并保留配置的完整步骤
备份现有配置与程序
为避免升级过程中配置丢失或服务中断,需提前备份Nginx的关键文件:
sudo cp -r /etc/nginx /etc/nginx_backup # 备份整个配置目录 sudo cp /usr/sbin/nginx /usr/sbin/nginx.bak # 备份Nginx二进制程序(可选,用于快速恢复) 若有自定义证书(如SSL证书),建议单独备份证书目录(通常位于/etc/nginx/cert):
sudo cp -r /etc/nginx/cert /etc/nginx/cert_backup 检查当前Nginx版本
确认当前运行的Nginx版本,便于后续验证升级结果:
nginx -v Ubuntu默认源中的Nginx版本可能滞后,需替换为官方源以获取最新版本:
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor -o /etc/apt/keyrings/nginx.gpg lsb_release -cs获取代号,如20.04对应focal、22.04对应jammy),编辑源列表文件:echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/nginx.gpg] \ https://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list > /dev/null sudo apt update N(保留现有配置):sudo apt install nginx 若已卸载旧版本,可直接运行上述命令;若未卸载,APT会自动升级现有版本并保留配置。nginx -v sudo nginx -t 若输出syntax is ok且test is successful,说明配置有效。reload命令重新加载配置,无需中断正在处理的请求:sudo systemctl reload nginx 或重启服务(会短暂中断服务,建议在维护窗口操作):sudo systemctl restart nginx sudo systemctl status nginx sudo apt --fix-broken install sudo cp /etc/nginx_backup/nginx.conf /etc/nginx/ sudo cp -r /etc/nginx_backup/conf.d /etc/nginx/ # 恢复自定义配置目录 pid file not found错误,需检查/etc/nginx/nginx.conf中的pid指令路径(通常为/run/nginx.pid),并确保/lib/systemd/system/nginx.service中的PIDFile路径一致。修改后执行:sudo systemctl daemon-reload sudo systemctl restart nginx 通过以上步骤,可在Ubuntu系统上安全升级Nginx至最新版本,同时保留原有配置,确保服务连续性与稳定性。