Nginx(十)-- 进程模型及工作原理
1.nginx进程模型
Nginx是一个master和worker的模型。master主要用来管理worker进程,master就比作老板,worker就是打工仔,master指挥worker来做事情。下图是nginx的进程模型:

master进程:
1.接收外界的信号,例如:kill -QUIT,kill -HUP
kill -HUP 重新加载配置文件,然后重新启动新的worker进程,老的还在运行,同时,向老的worker进程发送退休命令,老的worker进程将原有的请求处理完之后,就退休,不会接收新的请求,自毁,新的worker进程处理新的请求。
2.向各个worker进程发送信号
3.监控worker进程
4.当worker进程因异常退出,会自动启动新的worker进程。
woker进程:
处理客户端的请求
接收客户端的连接,完成服务端和后端的数据交互,各个worker之间的进程是相互独立的并且平等的,对请求的处理机会是相等的。
2.nginx工作原理
当启动nginx时,maste进程启动的时候,会创建好Listener的一个socket监听,然后会fork出多个worker进程(根据配置文件),当有请求来临时,worker进程会通过共享锁来保证在同一时刻只有一个worker进程来处理同一个连接,当worker进程接收到请求的时候,就开始做数据的响应和处理,哪一个进程抢到锁,哪一个进程就会处理请求。
nginx是一个壳,由内核和模块组成,主要是核心、基础、第三方模块。其中,核心模块:http模块,event模块、mail模块。
Nginx(十)-- 进程模型及工作原理的更多相关文章
- lvs、nginx、HAProxy、keepalive工作原理
1. lvs.nginx.HAProxy.keepalive工作原理 1.1. 前言 遇到了负载均衡和高可用选型问题,我觉的有必要好好理解下lvs,nginx,haproxy和keepalive的区别 ...
- Nginx之(四)工作原理
众所周知,nginx性能高,而nginx的高性能与其架构是分不开的 4.1 进程模型 Nginx在启动后,会有一个master进程和多个worker进程.master进程主要用来管理worker进程, ...
- 【转】Nginx系列(四)--工作原理
原博文出于: http://blog.csdn.net/liutengteng130/article/details/46724081 感谢! 上篇文章介绍了Nginx框架的设计之管理进程以及 ...
- Nginx学习之六-nginx核心进程模型
一.Nginx整体架构 正常执行中的nginx会有多个进程,最基本的有master process(监控进程,也叫做主进程)和woker process(工作进程),还可能有cache相关进程. 一个 ...
- Nginx的进程模型及高可用方案(OpenResty)
1. Nginx 进程模型简介 Nginx默认采用多进程工作方式,Nginx启动后,会运行一个master进程和多个worker进程.其中master充当整个进程组与用户的交互接口,同时对进程进行监护 ...
- Nginx学习——进程模型(master 进程)
进程模型 Nginx分为Single和Master两种进程模型.Single模型即为单进程方式工作,具有较差的容错能力,不适合生产之用.Master模型即为一个master进程+N个worker进程的 ...
- 【nginx】【转】Nginx核心进程模型
一.Nginx整体架构 正常执行中的nginx会有多个进程,最基本的有master process(监控进程,也叫做主进程)和woker process(工作进程),还可能有cache相关进程. ...
- 【Nginx】进程模型
转自:网易博客 服务器的并发模型设计是网络编程中很关键的一个部分,服务器的并发量取决于两个因素,一个是提供服务的进程数量,另外一个是每个进程可同时处理的并发连接数量.相应的,服务器的并发模型也由两个部 ...
- Nginx系列(四)--工作原理
上篇文章介绍了Nginx框架的设计之管理进程以及多个工作进程的设计.master进程用来管理通过fork子进程与子进程通信.子进程通过处理进程信号接到master的通信去处理请求. Nginx工作原理 ...
随机推荐
- android设置GridView高度自适应,实现全屏铺满效果
使GridView每个item的高度自适应拉伸,达到整个GridView刚好铺满全屏的效果. public static void setGridViewMatchParent(GridView gr ...
- lr11.0负载测试 real-world schedule 与basic schedule的区别是什么
real-world schedule 是真实场景模式 可以通过增加ACTION来增加多个用户 basic schedule 是我们以前用的 经典模式 只能设置一次负载的上升和下降
- 【AndroidManifest.xml详解】Manifest属性之sharedUserId、sharedUserLabel
http://blog.csdn.net/wirelessqa/article/details/8581652 android:sharedUserId 当APK安装的时候,userid这个标志就会产 ...
- Opengl绘制我们的小屋(一)球体,立方体绘制
这个系列我想用来运用opengl红皮书的前八章节的内容,来打造一个室内小屋. 这一章主要是定义几个基本的结构.并给出球体与立方体的画法,先让我们来定义一些基本的结构.一个是包含点,法向量,纹理贴图向量 ...
- python2 python3 字符串 编码格式 处理
使用python的ctypes调用c语言中的函数,传入字符串,打印输出异常.解决方法记录于此. 参考连接: http://blog.csdn.net/u011546806/article/detail ...
- 第三百四十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—craw母版l创建自动爬虫文件—以及 scrapy item loader机制
第三百四十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—craw母版l创建自动爬虫文件—以及 scrapy item loader机制 用命令创建自动爬虫文件 创建爬虫文件是根据scrap ...
- 嵌入式开发之hi3519--- pcie dma和dma cache 缓存更新sync memery
http://blog.csdn.net/likeping/article/details/42235111 linux下dma 管理 http://blog.csdn.net/skyflying20 ...
- ubuntu下查看windows的 txt 文件乱码
在终端执行 gsettings set org.gnome.gedit.preferences.encodings auto-detected "['UTF-8','GB18030','GB ...
- 笔记关闭fn功能
使用笔记本在vs开发中调试需要加fn+10进行调试,一点都不方便,使用fn+esc(fnLock)这个功能就可以关闭fn功能
- CentOS6.8下安装MySQL5.6
一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...