Nginx-进程模型

1.整体框架

  正常执行起来的Nginx有很多进程,有master_process和worker_process进程,master_process是监控进程即主线程,worker_process是工作进程。

    Nginx是通过upstream和后端服务器进行通信,通过fastcgi与后端应用服务器进行通信。

   启动Nginx服务器时,master_process充当监控进程,而有主线程fork出来的子进程充当worker_process进程,而监控进程的无限for(;;)循环内有一个sigsuspend()函数调用,该函数将监控进程大部分时间挂起等待状态,直到监控进程接收到信号为止。

时间: 2024-08-25 06:11:59

Nginx-进程模型的相关文章

菜鸟nginx源码剖析架构篇(二) nginx进程模型

Author:Echo Chen(陈斌) Email:[email protected] Blog:Blog.csdn.net/chen19870707 Date:Nov 17th, 2014 1.nginx进程模型 nginx采用的是多进程模型,典型的master-worker方式,采用一个master process(监控进程,也叫做主进程)和多个woker process(工作进程)的设计方式,此外,还有1个可选的chache manager和 1 个可选的cache loader进程.

nginx进程模型 master/worker

nginx有两类进程,一类称为master进程(相当于管理进程),另一类称为worker进程(实际工作进程).启动方式有两种: (1)单进程启动:此时系统中仅有一个进程,该进程既充当master进程的角色,也充当worker进程的角色. (2)多进程启动:此时系统有且仅有一个master进程,至少有一个worker进程工作. master进程主要进行一些全局性的初始化工作和管理worker的工作:事件处理是在worker中进行的. 首先简要的浏览一下nginx的启动过程,如下图: 2.实现原理

Nginx(十)-- 进程模型及工作原理

1.nginx进程模型 Nginx是一个master和worker的模型.master主要用来管理worker进程,master就比作老板,worker就是打工仔,master指挥worker来做事情.下图是nginx的进程模型: master进程: 1.接收外界的信号,例如:kill -QUIT,kill -HUP   kill -HUP 重新加载配置文件,然后重新启动新的worker进程,老的还在运行,同时,向老的worker进程发送退休命令,老的worker进程将原有的请求处理完之后,就退

Nginx源码剖析笔记之进程模型

Nginx进程模型分为两大类:监控进程(主进程).工作进程(子进程): 多进程模型入口函数:ngx_master_process_cycle():主要任务:设置信号处理,然后调用ngx_start_worker_process()生成子进程,这时,主进程主要循环监听信号,而子进程主要循环监听连接. 主进程:在没有收到信号时,用suspend()进入睡眠状态,当有信号到达时,调用相应的信号处理函数ngx_signal_handler().该信号处理函数主要对信号旗标变量做修改,主要的信号处理逻辑代

nginx学习(三):nginx的进程模型

概述 nginx 进程分为 master进程和work进程 1.打开配置文件查看,这里我修改为2 [[email protected] conf]# vim nginx.conf #user nobody; worker_processes 2; 2.重启,进入sbin 目录 ./nginx -s reload 3.nginx 常用命令 ./nginx -s stop # 停止 ./nginx -s quit # 退出 ./nginx -s reload #重启 ./nginx -t #测试配置

nginx_2_nginx进程模型

1.nginx进程模型概述 在上一节我们已经已经成功在linux服务器上安装了nginx,启动nginx后,查看进程:ps -ef | grep nginx 能看到启动nginx进程后,有一个master进程一个worker进程.并且worker进程的父进程是master进程.实际上nginx的进程模型是一个master进程,一至多个worker进程:master进程用于监控worker进程,worker进程处理实际的业务逻辑:master进程与worker进程之间通过信号量.共享内存方式进行通

Nginx工作进程模型

前面提到过,Nginx不为每个连接派生进程或线程,而是由worker进程通过监听共享套接字接受新请求,并且使用高效的循环来处理数千个连接.Nginx不使用仲裁器或分发器来分发连接,这个工作由操作系统内核机制完成.监听套接字在启动时就完成初始化,worker进程通过这些套接字接受.读取请求和输出响应. 事件处理循环是Nginx worker代码中最复杂的部分,它包含复杂的内部调用,并且严重依赖异步任务处理的思想.异步操作通过模块化.事件通知.大量回调函数以及微调定时器等实现.总的来说,基本原则就是

nginx源码分析--master和worker进程模型

一.Nginx整体架构 正常执行中的nginx会有多个进程,最基本的有master process(监控进程,也叫做主进程)和woker process(工作进程),还可能有cache相关进程. 一个较为完整的整体框架结构如图所示: 二.核心进程模型 启动nginx的主进程将充当监控进程,而由主进程fork()出来的子进程则充当工作进程. nginx也可以单进程模型执行,在这种进程模型下,主进程就是工作进程,没有监控进程. Nginx的核心进程模型框图如下: master进程 监控进程充当整个进

nginx源码分析--高性能服务器开发 常见进程模型

1.高性能服务器 对一个高性能服务器来说,处理速度快和资源占用小是典型特性,尤其是当服务器遇到C10K问题的时候(网络服务器在处理数以万计的客户端连接时,往往出现效率低下甚至完全瘫痪,这被称为C10K问题).要做到处理速度足够快,其并发模型的设计相当关键,而要做到资源尤其是内存资源的占用少,就要依赖于其资源分配和资源管理的方案设计. 服务器的并发模型设计是网络编程中很关键的一个部分,服务器的并发量取决于两个因素,一个是提供服务的进程数量,另外一个是每个进程可同时处理的并发连接数量.相应的,服务器

nginx源码分析--框架设计 & master-worker进程模型

Nginx的框架设计-进程模型 在这之前,我们首先澄清几点事实: nginx作为一个高性能服务器的特点,其实这也是所有的高性能服务器的特点,依赖epoll系统调用的高效(高效是相对select/poll这些系统调用的,底层有一个链表和红黑树,避免了轮询,减少了用户空间和系统空间之间的数据传递等),非阻塞(所有的操作都是非阻塞,这样),多进程(master-slave进程模型),这些事实使得nginx成为一个高性能服务器的前提条件. 既然作为一个软件(http服务器),相对于一个网络库而言肯定有更