nginx 不停机升级

468 阅读1分钟

nginx 提供了一种称为“不停止服务”的升级方式,也称为“热升级”。这种升级方式可以在不影响用户使用的情况下,将新版本的 nginx 代码部署到服务器上,并替换旧版本的代码。下面是 nginx 不停机升级的一般步骤:

  • 1 准备新版本的 nginx:首先,需要准备新版本的 nginx 软件包,并将其解压到待升级的服务器上。nginx.org/en/download…

  • 2 备份旧版本的 nginx:在升级前,需要备份旧版本的 nginx 配置文件、日志文件以及二进制文件。可以使用以下命令备份:

sudo cp -r /usr/local/nginx /usr/local/nginx-old  
  • 3 查看以前的版本信息
./nginx -V
nginx version: nginx/1.24.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
configure arguments: --prefix=/usr/local/nginx --with-http_gzip_static_module

记住arguments参数,后面编译要用到

  • 3 预编译新版本的 nginx:在升级前,需要预编译新版本的 nginx,以确保编译过程不会干扰正在运行的旧版本服务。可以使用以下命令进行预编译:
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module  
  • 4 编译make
make

千万不要 make&install,如果直接执行install会直接替换,make命令执行完成之后在编译目录objs文件下面有个nginx执行文件,此时我们把原来的sbin目录下nginx执行文件备份一下,将新编译的nginx二进制文件拷贝到原执行文件的位置。

cd /usr/local/nginx/sbin
mv nginx nginx.bak
cp ../../nginx-1.24.0/objs/nginx .
  • 5 执行make upgrade升级
make upgrade
  • 6 查看升级后的版本信息
/usr/local/nginx/sbin/nginx -V