1、nginx信号
nginx进程处理命令:
kill -signals PID
PID即nginx进程ID
signals的参数解释如下所示:
TERM,INT快速关闭进程
QUIT优雅的关闭,如果有请求则等待请求结束后停止
HUP 重载新的配置文件,对于旧的进程还用旧的配置文件,新的进程会使用新的配置文件
USR1重新打开日志文件,常用于日志切割
USR2 使用新版本的 Nginx 文件启动服务,之后平缓停止原有的 Nginx 进程,也就是所谓的“平滑升级”
WINCH平缓停止 worker process,用于 Nginx 服务器平滑升级
对于信号可以参考官网:
http://nginx.org/en/docs/control.html
2、平滑升级nginx
查看现在nginx的版本和编译参数
# ./sbin/nginx -V
nginx version: nginx/1.14.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.1.0k 28 May 2019
TLS SNI support enabled
configure arguments: --prefix=/data/usr/nginx --with-zlib=/data/usr/src/zlib-1.2.11 --with-openssl=/data/usr/src/openssl-1.1.0k --with-pcre=/data/usr/src/pcre-8.41 --with-http_ssl_module --with-stream --with-stream_ssl_module
下载新版本nginx并上传到服务器
解压并编译
# tar -zxvf nginx-1.16.0.tar.gz -C /data/usr/src
# cd /data/usr/src/nginx-1.16.0
# ./configure --prefix=/data/usr/nginx --with-zlib=/data/usr/src/zlib-1.2.11 --with-openssl=/data/usr/src/openssl-1.1.0k --with-pcre=/data/usr/src/pcre-8.41 --with-http_ssl_module --with-stream --with-stream_ssl_module
执行make但是不要执行make install
# make
备份老的nginx启动文件,并拷贝新的文件
# cp /data/usr/nginx/sbin/nginx /data/usr/nginx/sbin/nginx.bak
# pwd
/data/usr/src/nginx-1.16.0
# cp -rpf objs/nginx /data/usr/nginx/sbin/nginx
使用新nginx启动文件,旧的nginx.pid文件添加后缀.oldbin,变为nginx.pid.oldbin,然后执行新版本的二进制文件启动服务,新的nginx启动后将会有新旧两个版本的服务提供服务。
# kill -USR2 `cat /data/logs/nginx/nginx.pid`
# ll /data/logs/nginx/nginx*
-rw-r--r-- 1 root root 5 Sep 2 18:56 /data/logs/nginx/nginx.pid
-rw-r--r-- 1 root root 5 Sep 2 18:51 /data/logs/nginx/nginx.pid.oldbin
平缓停止worker process ,平缓停止旧的nginx服务
# kill -WINCH `cat /data/logs/nginx/nginx.pid.oldbin`
# kill -QUIT `cat /data/logs/nginx/nginx.pid.oldbin`
查看新版nginx的信息
# pwd
/data/usr/nginx/sbin
# ./nginx -V
nginx version: nginx/1.16.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.1.0k 28 May 2019
TLS SNI support enabled
configure arguments: --prefix=/data/usr/nginx --with-zlib=/data/usr/src/zlib-1.2.11 --with-openssl=/data/usr/src/openssl-1.1.0k --with-pcre=/data/usr/src/pcre-8.41 --with-http_ssl_module --with-stream --with-stream_ssl_module
参考:
https://blog.csdn.net/my1114/article/details/90717591