开发高级架构Nginx 的进程管理与重载原理

目录

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

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

进程结构图

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

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

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

开发高级架构Nginx 的进程管理与重载原理_第1张图片

图 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

复制代码

你可能感兴趣的:(nginx,linux,服务器,java,后端)