适用场景:希望快速升级到Ubuntu官方源支持的最新Nginx版本,操作简单且安全。
步骤说明:
准备工作:备份关键数据
升级前务必备份Nginx配置文件和网站数据,避免操作失误导致数据丢失:
sudo cp -r /etc/nginx /etc/nginx_backup # 备份配置目录
sudo cp /usr/sbin/nginx /usr/sbin/nginx.bak # 备份原二进制文件(可选)
添加Nginx官方APT源
Ubuntu默认源的Nginx版本可能滞后,需替换为官方源以获取最新稳定版:
sudo mkdir -p /etc/apt/keyrings # 创建密钥目录(Ubuntu 22.04+要求)
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor -o /etc/apt/keyrings/nginx.gpg
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
注:$(lsb_release -cs)会自动替换为当前Ubuntu版本代号(如22.04为jammy、20.04为focal)。更新软件包并安装最新Nginx
sudo apt update # 更新软件包索引
sudo apt install nginx # 安装最新稳定版(若需指定版本,可参考下文“精确版本控制”)
验证升级结果
nginx -v # 查看版本(如“nginx/1.25.3”)
sudo systemctl restart nginx # 重启服务使新版本生效
sudo systemctl status nginx # 确认服务状态(应为“active (running)”)
常见问题处理
sudo apt --fix-broken install修复。sudo nginx -t测试配置文件语法,避免启动失败。若需升级到特定版本(而非默认的最新稳定版),可通过以下步骤操作:
apt-cache madison nginx # 列出所有可安装的Nginx版本(如“1.25.3-1ubuntu1”)
VERSION为所需版本号(如1.25.3-1ubuntu1):sudo apt install nginx=VERSION
sudo apt-mark hold nginx # 锁定Nginx版本,避免后续`apt upgrade`自动升级
适用场景:官方源无所需版本,或需要自定义编译选项(如添加第三方模块)。
步骤说明(简要):
nginx-1.26.0.tar.gz):sudo wget http://nginx.org/download/nginx-1.26.0.tar.gz
sudo tar zxvf nginx-1.26.0.tar.gz
cd nginx-1.26.0
sudo /usr/sbin/nginx -V 2>&1 | grep -o 'with-.*' > config.params # 提取原编译参数
sudo ./configure $(cat config.params) # 使用相同参数配置
sudo make # 编译(勿运行make install,避免覆盖原文件)
sudo mv /usr/sbin/nginx /usr/sbin/nginx.bak # 备份原二进制
sudo cp objs/nginx /usr/sbin/nginx # 替换为新二进制
sudo nginx -t # 测试配置文件语法
sudo systemctl restart nginx # 重启服务
注意:手动升级需处理依赖库兼容性问题(如PCRE、OpenSSL),若编译失败需安装对应开发包(如sudo apt install libpcre3-dev libssl-dev)。
通过上述方法,可根据需求选择合适的方式更新Nginx版本。推荐优先使用APT官方源更新,兼顾便捷性与安全性。