Nginx服务器的平滑启动、平缓停止、平滑升级
注:nginx服务在运行时,会保持一个主进程(master process)和一个或多个工作进程(worker process)。
每一个进程都会有一个pid进程号,可以通过向主进程的pid进程号发送信号关闭服务器。
nginx服务器启动后,默认在nginx服务器安装目录的logs目录中会产生文件名为nginx.pid的文件,此文件中保持的就是nginx服务主进程的pid。
nginx服务器可接收的信号:
term 或 int 快速停止nginx服务器。
quit 平缓停止nginx服务器。
hup 平滑重启,使用新的配置文件启动进程,平缓的停止原有进程,
usr1 重新打开日志文件,常用于日志切割。
usr2 平滑升级,使用新版本的nginx文件启动服务,平缓的停止原有nginx进程。
winch 平缓停止worker process,用于nginx服务器平滑升级。
1.快速停止nginx服务器
(1) kill -term `cat /usr/local/nginx/logs/nginx.pid`
(2) kill -int `cat /usr/local/nginx/logs/nginx.pid`
2.平缓停止nginx服务器
kill -quit `cat /usr/local/nginx/logs/nginx.pid`
3.平滑重启nginx服务器
(1) kill -hup `cat /usr/local/nginx/logs/nginx.pid`
(2) /usr/local/nginx/sbin/nginx -s reload
4.平缓停止工作进程
kill -winch `cat /usr/local/nginx/logs/nginx.pid`
5.强制停止nginx
pkill -9 nginx
6.停止nginx服务器的命令
(1) /usr/local/nginx/sbin/nginx -s stop
(2) pkil nginx
7.检查对nginx.conf文件的修改是否正确
(1) nginx -t -c /usr/local/nginx/conf/nginx.conf
(2) /usr/local/nginx/sbin/nginx -t
--------------------------------------------------
nginx服务器平滑升级过程如下:
注:为实现nginx服务器的平滑升级,新的服务器安装路径应该和旧的保持一致。因此建议用户安装新服务器之前先备份旧的服务器。
1.编译新版本的nginx
(1) tar -xvf nginx-1.14.2.tar.gz #解压
(2) cd nginx-1.14.2 #进入解压后的目录
(3) ./configure --prefix=/usr/local/nginx #预编译路径和老版本的安装路径保持一致。
(4) make #编译
2.备份旧版本可执行nginx,复制新版本的nginx可执行nginx
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old #备份
cp objs/nginx /usr/local/nginx/sbin/ #复制新版本可执行文件
/usr/local/nginx/sbin/nginx -t #测试新版本是否正常
3.平滑重启升级nginx
kill usr2 ` cat /usr/local/nginx/log/nginx.pid` 或 /usr/local/nginx/sbin/nginx -g usr2 #发送平滑升级的信号
kill -winch `cat /usr/local/nginx/log/nginx.pid` 或 /usr/local/nginx/sbin/nginx -g winch #发送平缓停止旧服务器的信号
/usr/local/nginx/sbin/nginx -v #显示最新编译的版本信息即可。
下一篇: k8s几种yaml文件详解