You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04升级Nginx至1.25最新版后仍显示1.18版本求助

解决Nginx升级后仍显示旧版本的问题

1. 确认已安装的Nginx包版本

先执行命令查看系统中已安装的Nginx包信息,判断是否真的完成了升级:

sudo apt list --installed | grep nginx

如果输出显示已安装新版本,但nginx -v仍返回旧版本,说明系统中存在多个Nginx二进制文件,或者当前环境变量PATH指向了旧版本。

2. 切换至Nginx官方源(核心步骤)

Ubuntu默认软件源中的Nginx版本通常滞后,需切换到官方源获取最新稳定版:

  • 安装必要依赖:
    sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
    
  • 导入官方签名密钥:
    curl https://nginx.org/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] http://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
    
  • 设置源优先级,确保官方源优先于系统默认源:
    echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx
    

3. 执行升级并重启服务

更新包列表后完成Nginx升级:

sudo apt update && sudo apt upgrade nginx

升级完成后必须重启Nginx服务,确保进程切换到新版本:

sudo systemctl restart nginx

4. 排查多版本冲突

如果上述步骤后nginx -v仍显示旧版本,按以下步骤定位并解决:

  • 查看当前nginx命令指向的路径:
    which nginx
    
  • 检查该路径下的Nginx版本:
    $(which nginx) -v
    
  • 查找系统中所有可执行的Nginx二进制文件:
    sudo find / -name nginx -type f -executable
    
    对每个找到的路径执行/path/to/nginx -v,确认哪个是新版本。

冲突解决方式:

  • 若旧版本是源码编译安装的,直接删除旧二进制文件(如/usr/local/sbin/nginx),或修改PATH环境变量,将新版本所在路径(通常为/usr/sbin/)放在旧路径之前。
  • 检查Nginx服务的启动路径,确保使用新版本:
    systemctl cat nginx | grep ExecStart
    
    若路径指向旧版本,修改Nginx的systemd配置文件,更新为新版本路径后重启服务。

内容的提问来源于stack exchange,提问作者Soubhagya Pradhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 05:42:39