系统学习nginx(第六天)信号控制——包含升级nginx

信号含义
HUP更改配置文件之后,重新生成worker进程读取新的配置文件,待旧的worker处理完请求以后关闭
USR1日志切割
USR2平滑升级
WINCH优雅关闭旧的worker进程
QUIT优雅退出进程
  • HUP演示
    此时nginx是默认界面“welcome to nginx”。
    在这里插入图片描述

修改默认页面为“hup.html”页面,内容为“This is HUP;”
在这里插入图片描述
在这里插入图片描述

接下来将使用HUP方式,热加载配置文件。
确认nginx的PID并使用HUB信令方式加载配置文件
在这里插入图片描述
注意:如果是生产环境,当worker进程正在处理请求,我们使用HUP这种热加载的方式,会生成新的worker进程读取新的配置文件,老的worker进程处理完请求以后将会自动关闭,由上方截图可以看出,worker进程已经更改,接下来查看页面。
在这里插入图片描述

  • USER1演示
  1. 修改index.html代码,这个作用是在web页面可以不断刷新。
<script language="JavaScript">
setTimeout(function(){location.reload()},1000); //指定1秒刷新一次
</script>

在这里插入图片描述

  1. 不断查看日志大小,确定前端代码已经生效
    在这里插入图片描述
  2. 修改日志名称
    修改了之后还是会写入日志,所以用这种备份的方式是可不取的,这是因为写入操作是写入到inode中。

在这里插入图片描述

  • 切割日志
    切割之前要先进行改名!切记!!
    在这里插入图片描述
  • USR2、WINCH、QUIT演示
#查看当前版本为1.14.2
nginx -v
#nginx version: nginx/1.14.2

#解压需要升级的版本
tar xvf nginx-1.20.1.tar.gz 
 cd nginx-1.20.1
 #注意不要make install!!会覆盖原来的配置文件!!!!!!!!!
 ./configure --prefix=/usr/local/nginx/ && make

#备份原来的nginx
cd /usr/local/nginx/sbin/
mv nginx nginx-1.14.2

#复制新版本的二进制文件
cd ~/nginx-1.20.1/objs/
cp -r nginx /usr/local/nginx/sbin/

#检测配置文件是否正常
nginx -t

#平滑升级nginx
ps -aux |grep nginx
#root       9695  0.0  0.0  20548   608 ?        Ss   11:31   0:00 nginx: master process ./nginx
#nobody     9696  0.0  0.0  20992  1052 ?        S    11:31   0:00 nginx: worker process
#root       9698  0.0  0.0 112812   972 pts/0    R+   11:31   0:00 grep --color=auto nginx

#使用平滑升级信号
kill -USR2 9695

#查看pid文件,这时候会出现一个nginx.pid.oldbin文件,这是之前的pid,如果不知道pid文件路径可以查看nginx配置文件
ll /usr/local/nginx/logs/
#total 12
#-rw-r--r--. 1 root root   0 Dec  7 11:22 access.log
#-rw-r--r--. 1 root root 655 Dec  7 11:31 error.log
#-rw-r--r--. 1 root root   5 Dec  7 11:31 nginx.pid
#-rw-r--r--. 1 root root   5 Dec  7 11:31 nginx.pid.oldbin
cat /usr/local/nginx/logs/nginx.pid.oldbin 
#9695

#关闭旧的worker进程
kill -WINCH 9695

#热加载nginx配置
kill -HUP 9695

#推出旧master进程
kill -QUIT 9695

#验证nginx升级是否成功
nginx -v
#nginx version: nginx/1.20.1
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值