【nginx】nginx的工作模式和信号量控制

     nginx是一个多进程/多线程高性能web服务器在linux系统中,nginx启动后会以后台守护进程(daemon)的方式去运行,后台进程包含一个master进程和多个worker进程(这个数量可以在nginx.conf配置文件中worker_processes这个参数设置)。nginx工作模式是以多进程的方式来工作的,当然nginx也是支持多线程的方式的,只是我们主流的方式还是多进程的方式,也是nginx的默认方式。nginx在启动之后会有一个master进程和多个worker进程(默认是一个),多个worker子进程将监听同一个端口,并行处理请求。

     master主进程主要用来管理worker进程,主要作用是:读取并验正配置信息,接收来自客户端的的请求,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。而用户的请求则是worker进程来响应的。

    nginx是通过信号来控制,比如关闭,重启等去控制nginx进程。nginx信号是属于nginx进程间的通信的一种机制,比如master主进程控制多个worker子进程,也是通过信号控制的,如下图。

 

worker 进程数应该设置为等于 CPU 的核数,高流量并发场合也可以考虑将进程数提高至 CPU 核数 * 2。

[root@localhost oa_workflow_test]# ps aux | grep nginx
root       2381  0.0  0.0  47688  1464 ?        Ss   6月01   0:00 nginx: master process /usr/local/nginx/sbin/nginx
www        2383  0.0  0.1  50216  2304 ?        S    6月01   0:00 nginx: worker process
nginx      2624  0.0  0.3 775948  6800 ?        S    6月01   0:00 php-fpm: pool www
nginx      2625  0.0  0.3 775948  6800 ?        S    6月01   0:00 php-fpm: pool www
root      69028  0.0  0.0 114704   976 pts/1    R+   12:24   0:00 grep --color=auto nginx
[root@localhost oa_workflow_test]# /usr/local/nginx/sbin/nginx -s reload
[root@localhost oa_workflow_test]# ps aux | grep nginx
root       2381  0.0  0.1  48220  2728 ?        Ss   6月01   0:04 nginx: master process /usr/local/nginx/sbin/nginx
www        2383  0.0  0.1  50216  2304 ?        R    6月01   0:02 nginx: worker process is shutting down
nginx      2624  0.0  0.3 775948  6800 ?        S    6月01   0:00 php-fpm: pool www
nginx      2625  0.0  0.3 775948  6800 ?        S    6月01   0:00 php-fpm: pool www
www       69034 36.0  0.0      0     0 ?        R    12:24   0:01 [nginx]
www       69035 60.6  0.1  50548  2392 ?        R    12:24   0:01 nginx: master process /usr/local/nginx/sbin/nginx
www       69036 34.0  0.1  50548  2560 ?        S    12:24   0:01 nginx: worker process
www       69037 67.6  0.1  50548  2560 ?        S    12:24   0:02 nginx: worker process
www       69038 36.3  0.1  50548  2260 ?        R    12:24   0:01 nginx: master process /usr/local/nginx/sbin/nginx
root      69040 49.0  0.0 114708   980 pts/1    S+   12:24   0:00 grep --color=auto nginx

 

 

Nginx支持以下几种信号选项:

  • TERM,INT:       快速关闭                                                     
  • QUIT :从容关闭(优雅的关闭进程,即等请求结束后再关闭)     
  • HUP :平滑重启,重新加载配置文件 (平滑重启,修改配置文件之后不用重启服务器。直接kill -PUT 进程号即可)
  • USR1 :重新读取日志文件,在切割日志时用途较大(停止写入老日志文件,打开新日志文件,之所以这样是因为老日志文件就算修改的文件名,由于inode的原因,nginx还会一直往老的日志文件写入数据) 
  • USR2 :平滑升级可执行程序  ,nginx升级时候用                                
  • WINCH :从容关闭工作进程                                           

    

Nginx信号控制语法:

      kill -信号选项 nginx的主进程号

   例如:从容关闭nginx服务

kill -QUIT nginx主进程号

 

转载于:https://www.cnblogs.com/songgj/p/9124882.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值