目标:Nginx的Master进程和Worker进程
Nginx 使用多进程架构来处理请求,这些进程包括一个 master 进程(主进程)和多个 worker 进程(工作进程)。
Master进程(主进程)
主进程主要负责管理 worker 进程,包括创建、监控和维护这些进程。主进程还负责读取和验证 Nginx 配置文件、处理信号等。当收到重载配置、平滑升级、关闭等信号时,主进程会采取相应的行动。主进程不参与实际的请求处理,它的主要任务是确保 worker 进程能够正常运行。
Master进程
- 监控Worker进程
- 当Worker进程挂掉,会发送一个信号量SIGCHLD(编号:17):子进程停止或结束
- 管理Workder进程
- 接收信号
- TERM,INT
- QUIT
- HUP
- USR1
- USR2
- WINCH
Worker进程
工作进程负责处理客户端的请求。Nginx 使用多个 worker 进程来提高并发能力和可用性。每个 worker 进程都是独立的,它们互不影响,可以并行处理请求。这种架构使 Nginx 能够充分利用多核处理器的优势,提高系统的吞吐量和性能。工作进程的数量可以在 Nginx 配置文件中设置,根据系统资源和实际需求进行调整。
不推荐直接通过信号量管理Worker进程,虽然可以这样做,但一般通过Master进程来管理Worker进程
Worker进程
- 接收信号
- TERM,INT
- QUIT
- USR1
- WINCH
命令行
Bin目录下面执行的命令行语句(实际上也是发送信号量到Nginx)
- reload:HUP
- reopen:USR1
- stop:TERM
- quit:QUIT
Comments NOTHING