欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Nginx服务器的平滑启动、平缓停止、平滑升级

程序员文章站 2022-03-12 09:35:38
注:Nginx服务在运行时,会保持一个主进程(master process)和一个或多个工作进程(worker process)。 每一个进程都会有一个PID进程号,可以通过向主进程的PID进程号发送信号关闭服务器。 Nginx服务器启动后,默认在Nginx服务器安装目录的logs目录中会产生文件名 ......

注: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 #显示最新编译的版本信息即可。