Nginx的Master/Worker进程

发布于 2023-10-01  783 次阅读


目标: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

Linux常用的信号量

届ける言葉を今は育ててる
最后更新于 2023-10-01