检测到低版本nginx有漏洞,需要升级到高版本。以前是使用官方仓库dnf install nginx -y 安装的,现在如果直接使用dnf upgrade nginx 升级是找不到高版本的。
以下是现在检查系统已安装的nginx版本信息的命令。
[root@localhost ~]# nginx -v
nginx version: nginx/1.20.1
[root@localhost ~]# rpm -q nginx
nginx-1.20.1-24.el9.x86_64
[root@localhost ~]# dnf check-update nginx
Last metadata expiration check: 0:44:28 ago on Thu 19 Mar 2026 10:35:17 AM CST.
[root@localhost ~]# dnf updateinfo info nginx
Last metadata expiration check: 0:44:37 ago on Thu 19 Mar 2026 10:35:17 AM CST.
另一台主机上使用检测命令的结果:

可以看到只有使用 dnf module list nginx 才能检测到仓库中的其它高版本nginx。所以我们要使用下面的命令来平滑升级。
升级之前,先备份/etc/nginx 目录。
# cp -r /etc/nginx /etc/nginx.backup.$(date +%Y%m%d)
验证当前模块状态:
你可以用以下命令查看 nginx 模块是否被“锁定”:
dnf module list nginx
输出中的标记含义:
[d]:默认流
[e]:已启用(enabled)
[i]:已安装(installed)
[x]:禁用
如果你看到某一行有 [e] 或 [i],说明已被锁定。
如果被锁定,则要用sudo dnf module reset nginx -y这个命令解锁。
最后安装成功后,用sudo dnf module reset nginx 解锁不影响使用。
更新升级流程命令:
# 1. 检查可用版本
dnf module list nginx
# 2. 重置模块流
dnf module reset nginx -y
# 3. 启用最新稳定版
dnf module enable nginx:1.24 -y # 或 1.26
# 4. 升级
dnf update nginx -y
# 5. 验证
nginx -v
nginx -t
systemctl restart nginx
1702

被折叠的 条评论
为什么被折叠?



