怎么重启nginx和关闭服务?

方式一:Nginx服务的信号控制

前面在提到Nginx的高性能,其实也和它的架构模式有关。Nginx默认采用的是多进程的方式来工作的,当将Nginx启动后,我们通过ps -ef |grep nginx命令可以查看到如下内容:

**信号控制**

从上图中可以看到,Nginx后台进程中包含一个master进程和多个worker进程,master进程主要用来管理worker进程,包含接收外界的信息,并将接收到的信号发送给各个worker进程,监控worker进程的状态,当worker进程出现异常退出后,会自动重新启动新的worker进程。而worker进程则是专门用来处理用户请求的,各个worker进程之间是平等的并且相互独立,处理请求的机会也是一样的。nginx的进程模型,我们可以通过下图来说明下:

Nginx管理员

我们现在作为管理员,只需要通过给master进程发送信号就可以来控制Nginx,这个时候我们需要有两个前提条件,一个是要操作的master进程,一个是信号。

1.要想操作Nginx的master进程,就需要获取到master进程的进程号ID。获取方式简单介绍两个

  • 通过ps -ef | grep nginx;

  • 在讲解nginx的./configure的配置参数的时候,有一个参数是–pid-path=PATH默认是/usr/local/nginx/logs/nginx.pid,所以可以通过查看该文件来获取nginx的master进程ID.

2.信号

在这里插入图片描述

调用命令为kill -signal PID

signal:即为信号;PID即为获取到的master线程ID

1.发送TERM/INT信号给master进程,会将Nginx服务立即关闭。

kill -TERM PID / kill -TERM cat /usr/local/nginx/logs/nginx.pid

kill -INT PID / kill -INT cat /usr/local/nginx/logs/nginx.pid

2.发送QUIT信号给master进程,master进程会控制所有的work进程不再接收新的请求,等所有请求处理完后,在把进程都关闭掉。

kill -QUIT PID / kill -TERM cat /usr/local/nginx/logs/nginx.pid

3.发送HUP信号给master进程,master进程会把控制旧的work进程不再接收新的请求,等处理完请求后将旧的work进程关闭掉,然后根据nginx的配置文件重新启动新的work进程

kill -HUP PID / kill -TERM cat /usr/local/nginx/logs/nginx.pid

4.发送USR1信号给master进程,告诉Nginx重新开启日志文件

kill -USR1 PID / kill -TERM cat /usr/local/nginx/logs/nginx.pid

5.发送USR2信号给master进程,告诉master进程要平滑升级,这个时候,会重新开启对应的master进程和work进程,整个系统中将会有两个master进程,并且新的master进程的PID会被记录在/usr/local/nginx/logs/nginx.pid而之前的旧的master进程PID会被记录在/usr/local/nginx/logs/nginx.pid.oldbin文件中,接着再次发送QUIT信号给旧的master进程,让其处理完请求后再进行关闭

kill -USR2 PID / kill -USR2 cat /usr/local/nginx/logs/nginx.pid

kill -QUIT PID / kill -QUIT cat /usr/local/nginx/logs/nginx.pid.oldbin

6.发送WINCH信号给master进程,让master进程控制不让所有的work进程在接收新的请求了,请求处理完后关闭work进程。注意master进程不会被关闭掉

kill -WINCH PID /kill -WINCHcat /usr/local/nginx/logs/nginx.pid

方式二:Nginx的命令行控制

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+点击【学习资料】即可领取!

程序猿(媛)可以帮忙点赞+点击【学习资料】即可领取!

[外链图片转存中…(img-dwa1iJ22-1712754766879)]

[外链图片转存中…(img-uJOrKsqP-1712754766880)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值