商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > nginx如何更新版本

nginx如何更新版本

  发布于2026-07-06 阅读(0)

扫一扫,手机访问

Nginx版本更新指南

nginx如何更新版本

谈到Nginx版本更新,其实核心思路就那么几个。要么图省心,直接用包管理器搞定;要么追求高度可控,从源码编译,自己定制模块和安装路径。具体怎么选,就看你对升级过程中连接中断的容忍度了——是追求零中断的平滑升级,还是可以接受快速替换后重启。

通过包管理器升级

这是最省事儿的路径,尤其适合Ubuntu、Debian这类系统。

Ubuntu / Debian 环境

动手之前,第一件事永远是备份配置,这是个好习惯,关键时候能救命。运行 sudo cp -r /etc/nginx /etc/nginx_backup 就能搞定。接着用 nginx -vnginx -V 确认下当前版本。

之后要做的,是把官方APT源加进去。先导入密钥: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。源配好后, sudo apt update && sudo apt install nginx 这条命令就能完成升级,最后别忘了 sudo systemctl restart nginx 让它生效。升级后用 nginx -vsystemctl status nginx 验证一下即可。

需要注意,配置好官方源后,后续的常规更新就简单了,直接 apt upgrade nginx 就能拉到最新的稳定版。

CentOS / RHEL 环境

流程大同小异,备份和版本检查的步骤是一样的。升级命令根据你的系统版本,用 sudo yum update nginxsudo dnf upgrade nginx,然后重启并验证。前提是你的系统已经配置了EPEL源或者Nginx官方仓库。如果系统自带的仓库版本太老,记得先把源配好再操作。

从源码编译升级

这条路就更有技术范儿了,也给了你最大的灵活性。升级方式分两种:平滑升级和快速替换。

准备工作

先查看旧版本的编译参数,这个非常重要,因为新版本编译时必须复用这些参数。命令是 /usr/local/nginx/sbin/nginx -V。同时,务必备份旧的可执行文件和配置:cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

编译新版本

下载并解压新版本源码:wget -c https://nginx.org/download/nginx-<新版本>.tar.gz && tar -zxvf nginx-<新版本>.tar.gz。然后进入目录,用刚才记下的旧参数执行 ./configure。关键一步来了:这里只执行 make千万不要执行 make install。编译好的二进制文件会生成在 objs/nginx 里。

平滑升级(推荐)

这招能实现近乎零中断的升级。把新编译好的二进制文件复制过去:cp objs/nginx /usr/local/nginx/sbin/。然后在源码目录执行 make upgrade,它会自动进行语法检查并优雅地切换进程。最后用 /usr/local/nginx/sbin/nginx -V 确认版本。

快速替换(允许短暂停机)

如果你的业务可以接受几秒钟的中断,这个方法更直接。先停止旧进程:/usr/local/nginx/sbin/nginx -s stop。接着替换二进制文件:cp objs/nginx /usr/local/nginx/sbin/,然后直接启动新进程:/usr/local/nginx/sbin/nginx,同样验证一下版本。

回滚

万一升级后出了问题怎么办?别慌。快速回滚很简单:cp /usr/local/nginx/sbin/nginx.old /usr/local/nginx/sbin/nginx && /usr/local/nginx/sbin/nginx。如果想用平滑的方式切回旧版本,就在旧版源码目录里再次执行 make upgrade

回滚与安全加固

回滚的要点就是保留好 nginx.old 这个备份文件,关键时刻能直接替换启动,或者从旧版源码目录执行 make upgrade 优雅切回。

安全加固这块,有几个常规但非常有效的操作:在 nginx.confhttp 块设置 server_tokens off; 来隐藏版本号;编译时通过 --without-http_autoindex_module 这类参数,剔除不必要的模块,减小攻击面;SSL/TLS 方面,强制启用 TLS 1.2/1.3,并配置强加密套件,比如 ssl_protocolsssl_ciphersssl_prefer_server_ciphers 这些指令;还可以用 if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; } 来限制请求方法。当然,定期关注官方安全公告,做系统性的审计和配置扫描,才是长治久安之道。

本文转载于:https://www.yisu.com/ask/11672607.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注