Nginx的进程管理与重载原理

本文详细介绍了Nginx的进程结构,包括master进程、worker进程和cache进程,强调了多进程设计的高可用性。同时,文章探讨了Linux的信号量管理机制,特别是如何利用信号量对Nginx进程进行管理,如SIGHUP信号用于配置文件重载。此外,还解释了配置文件重载的原理,展示了平滑升级过程中新老请求的处理流程。
摘要由CSDN通过智能技术生成

目录

  • 进程结构图
  • 信号量管理
    • Linux的信号量管理机制
    • 利用信号量管理Nginx进程
  • 配置文件重载原理

C/C++ Linux服务器开发高级架构学习视频点击:C/C++Linux服务器开发/Linux后台架构师-学习视频教程

进程结构图

Nginx是多进程结构,多进程结构设计是为了保证Nginx的高可用高可靠,包含:

  • master进程:父进程,负责worker进程的管理
  • worker进程:子进程,worker进程一般配置与服务器CPU核数相同,worker进程用来处理具体请求。
  • cache进程:也是子进程,包括cache manager和cache loader进程,主要是反向代理做缓存使用。

注:多进程相对于多线程之所以能够保证高可用与高可靠是因为进程间地址空间是独立的,进程间的任务不会相互影响,相对多线程更加耗费CPU资源。而多线程共享一个进程的地址空间,其中一个线程任务失败会影响到其它线程任务。

图3-1 Nginx进程结构图

假设我们的Nginx服务的用户是nginx,我们可以使用如下命令查看当前运行的Nginx服务的master进程和worker进程,而且可以看到4个worker进程的父进程ID都是master的进程ID(1325)。

[root@master ~]# ps -ef | grep nginx | grep -v grep | grep -v php-fpm
root       1325      1  0 11:28 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx      1332   1325  0 11:28 ?        00:00:00 nginx: worker process
nginx      1334   1325  0 11:28 ?        00:00:00 nginx: worker process
nginx      1335   1325  0 11:28 ?        00:00:00 nginx: worker process
nginx      1336   1325  0 11:28 ?        00:00:00 nginx: worker process

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值