首页主机资讯Ubuntu系统如何升级Nginx到最新版本

Ubuntu系统如何升级Nginx到最新版本

时间2025-11-17 21:34:03发布访客分类主机资讯浏览987
导读:Ubuntu 升级 Nginx 到最新版本 一 升级思路与准备 先确认当前版本与系统代号:执行 nginx -v、nginx -V(查看编译参数与模块)、以及 lsb_release -cs(如:jammy、noble)。 备份关键数据与...

Ubuntu 升级 Nginx 到最新版本

一 升级思路与准备

  • 先确认当前版本与系统代号:执行 nginx -vnginx -V(查看编译参数与模块)、以及 lsb_release -cs(如:jammynoble)。
  • 备份关键数据与配置:建议备份 /etc/nginx 与证书目录(如 /etc/letsencrypt),并导出当前模块清单用于兼容性核对。
  • 选择升级策略:优先使用 Nginx 官方 APT 仓库stablemainline 版本;若系统自带源版本过旧,添加官方源后再升级。
  • 升级前尽量在测试环境验证自定义配置与第三方模块兼容性,避免生产中断。

二 方法一 使用官方仓库升级(推荐)

  • 1)导入官方 GPG 密钥
    curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg > /dev/null
    gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
  • 2)添加仓库(二选一)
    • 稳定版:echo “deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu $(lsb_release -cs) nginx” | sudo tee /etc/apt/sources.list.d/nginx.list
    • 主线版:echo “deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/ubuntu $(lsb_release -cs) nginx” | sudo tee /etc/apt/sources.list.d/nginx.list
  • 3)设置仓库优先级(确保优先使用官方包)
    echo -e “Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n” | sudo tee /etc/apt/preferences.d/99nginx
  • 4)执行升级与验证
    sudo apt update
    sudo apt install --only-upgrade nginx # 若尚未安装会执行安装
    nginx -v & & nginx -V
    sudo nginx -t & & sudo systemctl reload nginx
    说明:主线版包含最新特性与修复,稳定版更保守;两者均为官方打包,建议优先选择稳定版,需要新特性时再切主线版。

三 方法二 国内镜像与离线场景

  • 国内镜像加速(可选):将官方域名替换为 https://mirrors.nju.edu.cn/nginx/,其余步骤相同。示例:
    curl https://mirrors.nju.edu.cn/nginx/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg > /dev/null
    echo “deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://mirrors.nju.edu.cn/nginx/ubuntu $(lsb_release -cs) nginx” | sudo tee /etc/apt/sources.list.d/nginx.list
    sudo apt update & & sudo apt install --only-upgrade nginx
  • 离线/内网环境:在一台可联网机器按上述步骤添加官方源并下载 .deb 包及依赖,拷贝到目标服务器后执行 *sudo dpkg -i .deb;随后执行 sudo nginx -t & & sudo systemctl reload nginx
    提示:镜像仅加速下载,包内容仍来自官方仓库;离线安装需确保依赖完整。

四 方法三 从源码编译升级(进阶)

  • 适用场景:需要自定义模块或特定编译参数。
  • 简要步骤:
    1)安装编译依赖:sudo apt install build-essential libpcre3-dev zlib1g-dev libssl-dev
    2)下载并解压:wget https://nginx.org/download/nginx-.tar.gz & & tar -zxvf nginx-.tar.gz & & cd nginx-
    3)配置与编译:./configure [你的原有编译参数] & & make(不要直接 make install)
    4)备份与替换二进制:sudo cp /usr/sbin/nginx /usr/sbin/nginx.bak & & sudo cp objs/nginx /usr/sbin/nginx
    5)热升级或平滑切换:
    • 热升级:sudo kill -USR2 $(cat /var/run/nginx.pid) & & sudo kill -WINCH $(cat /var/run/nginx.pid.oldbin)(确认新进程稳定后再 kill -QUIT 旧进程)
    • 或先停旧进程再启动新进程:sudo systemctl stop nginx & & sudo systemctl start nginx
      6)验证:nginx -t & & sudo systemctl status nginx
      说明:编译参数可通过 nginx -V 获取,务必保持一致;源码方式更灵活但维护成本更高。

五 回滚与验证

  • 回滚方案:
    • APT 方式:sudo apt install --allow-downgrades nginx=< 旧版本号> ;或暂时将官方源优先级调低后降级。
    • 源码方式:用备份的 /usr/sbin/nginx.bak 覆盖新二进制,执行 sudo nginx -t & & sudo systemctl reload nginx
  • 升级后必做检查:
    • 配置语法:sudo nginx -t
    • 服务状态:sudo systemctl status nginx
    • 版本与模块:nginx -v、nginx -V
    • 业务验证:访问关键域名与接口,观察错误日志 /var/log/nginx/error.log
      提示:任何变更前先备份,变更后在低峰期执行并保留回滚路径。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu系统如何升级Nginx到最新版本
本文地址: https://pptw.com/jishu/749366.html
Debian下Laravel项目如何优化性能 Nginx在Ubuntu中的安全设置指南

游客 回复需填写必要信息