- 查看旧版nginx编译参数
[root@localhost yum.repos.d]# nginx -V
nginx version: nginx/1.14.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_modu
le --with-http_gzip_static_module
[root@localhost yum.repos.d]# ps aux | grep nginx
root 80809 0.0 0.1 47024 1912 ? Ss 12:10 0:00 nginx: master process nginx
nginx 80810 0.0 2.2 69760 22652 ? S 12:10 0:00 nginx: worker process
nginx 80811 0.0 2.2 69760 22652 ? S 12:10 0:00 nginx: worker process
- 备份旧版本
[root@localhost yum.repos.d]# strings /usr/local/nginx/sbin/nginx.old
- 安装新版本的nginx(不要执行make install)
[root@localhost ~]# tar zxf nginx-1.15.9.tar.gz -C /usr/src/
[root@localhost nginx-1.15.9]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module && make
#和nginx -V 查看的所编译的要相同
[root@localhost nginx-1.15.9]# cp objs/nginx /usr/local/nginx/sbin/nginx
#使用新的二进制文件代替旧的
[root@localhost nginx-1.15.9]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
#查看配置文件是否正常
[root@localhost nginx-1.15.9]# nginx -V
#如一切环境正常,可以看到版本号已经修改为新的了
- 发送USR2信号
[root@localhost nginx-1.15.9]# kill -USR2 80809
#向主进程(master)发送 USR2 信号,Nginx 会启动一个新版本的master进程和对应工作进程,和旧版一起处理请求
[root@localhost nginx-1.15.9]# ps aux | grep nginx
[root@localhost ~]# kill -WINCH 80809
#向旧的 Nginx 主进程(master)发送 WINCH信号,它会逐步关闭自己的工作进程(主进程不退出),这时所有请求都会由新版 Nginx 处理
[root@localhost ~]# kill -QUIT 80809
#向旧的 Nginx 主进程(master)发送(QUIT、TERM、或者 KILL)信号,使旧的主进程退出
[root@localhost nginx-1.15.9]# nginx -v
nginx version: nginx/1.15.9
#测试查看版本号
over……