使用Nginx时,经常遇到添加新模块或升级Nginx版本。如何做到不停机升级部署?本文将讨论热升级的详细步骤和相关机制。
文章目录
1.热升级步骤
热升级大致分为两步,按照新的要求编译好Nginx的二进制文件,通过信号,完成新老进程的平滑过渡,保证升级期间服务可用。
热升级要升级的部分一般是要添加新的模块或者升级Nginx版本。前者如果是编译第三方模块需要先准备好模块源代码,对于后者需要先下载最近Nginx源码。
-
第一步:先查看原先编译的参数。-V可以查看编译时的参数。(-v时查看版本)
在新编译时,要将原有的模块参数也加上,否则原有的模块不会编译进去。
./nginx -V
- 第二步:开始编译,编译过程和上篇一致,只是增加了要添加模块的参数。
./configure --add-module=/xx/nginx-xx-moudule --with-compat --with-file-aio
make
这里通过–add-module可以编译第三方的模块到Nginx。 这里只需要make编译,不要make install安装。
编译完成后的nginx二进制文件在objs目录。一会要用到。
- 第三步:备份和替换
#先备份二进制执行文件
cd /usr/local/nginx/sbin/