三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Nginx 升级指南:从 1.24.0 升级到 1.30.0

Nginx 升级指南:从 1.24.0 升级到 1.30.0

升级目标:将Nginx从版本1.24.0升级至1.30.0(或更高),以修复相关安全漏洞。

第一步:准备工作
  1. 下载新版本源码包
    前往官网下载nginx-1.30.0.tar.gz

    wget https://nginx.org/en/download.html # 官网链接,实际下载需替换为真实tar.gz地址 # 或使用直接下载链接(示例): wget https://nginx.org/download/nginx-1.30.0.tar.gz
  2. 备份当前Nginx目录

    备份/usr/local/nginx目录 tar -czvf nginx20260605.tar.gz nginx
  3. 查看当前版本及编译参数

    /usr/local/nginx/sbin/nginx -V

    重要:请记录下输出中的--prefix=--with-http_ssl_module等参数,后续编译时需要保持一致。

    示例输出片段:--prefix=/usr/local/nginx --with-http_ssl_module

第二步:编译新版本
  1. 解压源码包

    tar -zxvf nginx-1.30.0.tar.gz cd nginx-1.30.0
  2. 配置编译选项(使用原版本的参数)

    ./configure --prefix=/usr/local/nginx --with-http_ssl_module

    注意:如果原-V输出中有其他--with-参数,请一并加上。您之前提到的--with-openssl=/usr/include/openssl通常不需要手动指定,系统默认即可。

  3. 执行编译

    /usr/local/nginx-1.30.0下执行make

    (注意:此处不要执行make install,以免覆盖配置文件)

第三步:替换二进制文件
  1. 备份旧版Nginx可执行文件

    cp -rf /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old_$(date +%Y%m%d)
  2. 复制新编译的Nginx文件

    cp -rf objs/nginx /usr/local/nginx/sbin/
第四步:重启Nginx服务
  1. 停止旧版Nginx进程

    ps -ef | grep nginx # 找到主进程号(master process),执行停止(建议优先使用优雅停止) kill -QUIT <主进程号> # 或强制停止(不推荐,可能导致连接中断): # kill -9 <主进程号>
  2. 启动新版Nginx

    cd /usr/local/nginx/sbin ./nginx
第五步:验证升级结果
  1. 查看版本号

    ./nginx -v

    预期输出nginx version: nginx/1.30.

  2. 检查服务状态

    ps -ef | grep nginx curl -I http://localhost # 测试网页服务是否正常

核心注意事项

  • 不要执行make install:否则可能覆盖您原有的配置文件(如nginx.conf)。

  • 平滑重启(推荐):若不想中断服务,可使用以下命令代替kill+./nginx

    kill -USR2 <旧版主进程号> # 启动新进程 kill -QUIT <旧版主进程号> # 优雅关闭旧进程
  • 回滚方案:如果升级后出现问题,可以快速恢复:

    cp -rf /usr/local/nginx/sbin/nginx.old_<日期> /usr/local/nginx/sbin/nginx # 然后重启nginx
← 返回列表