nginx的架构主要是有一个主监控进程:master;三个工作进程:worker;还有Cache的两个进程。back-end-server是后端服务器,主要是处理后台逻辑。nginx作为代理服务器需要和前端web以及后端server通讯

master大多数情况下是挂起的,直到有信号来,比如worker进程down掉了,那么会产生singnal给master进程,直到回复到初始状态,然后又被挂起。

worker主要做的就是和后台及web端的I/O进程操作,做的是利用select,epoll_waite等进行多路复用的进程处理,以等待事件。一旦有事件发生或收到信号,worker就开始处理相关请求。

Cache进程不处理客服端请求,也就没有I/O操作,主要处理的是超时事件。Cache加载进程,是在nginx启动的时候进行加载缓存,一次操作,以后加载进程自动退出。

进程通信:

nginx里面的进程通信主要有两种方式:1.socket;2.共享内存

socket通信在nginx里面是用于父子进程的通信,至于子进程之间的通信则是采用共享内存的方式,nginx为我们提供了一整套完整的共享内存接口:

所有的共享内存都一链表的形式链接,当我们要创建新的共享内存的时候,先查看该内存是否存在,以避免冲突。由于共享内存被多进程使用,所以

必然用到锁机制。nginx使用slab机制对共享内存进行初始化和管理,使得共享内存方式更加高效。slab主要采用缓存和对齐方法来保证内存分配高效。

  缓存主要指的是缓存尺,对齐就是涉及到内存管理及回收机制。

  信号处理:支持与用户进行信息交互,在不中断nginx服务的情况下,讲信号量与回调函数绑定。nginx采用ngx_singal_t结构体来存储所有的信号量。

关于nginx架构探究(1)的更多相关文章

  1. 关于nginx架构探究(4)

    事件管理机制 Nginx是以事件驱动的,也就是说Nginx内部流程的向前推进基本都是靠各种事件的触发来驱动,否则Nginx将一直阻塞在函数epoll_wait()或suspend函数,Nginx事件一 ...

  2. 关于nginx架构探究(3)

    Nginx 模块综述 Nginx 所有的代码都是以模块的新式组织的,包括核心模块和功能模块.Nginx加载模块的时候不想Apache一样动态加载,它是直接被编译到二进制执行文件中,所以,如果想要加载新 ...

  3. 关于nginx架构探究(2)

    nginx 数据结构 1.Hash table nginx 对虚拟主机的管理使用到了HASH数据结构,假设配置文件里有如下的配置. Server{ listen 192.168.0.1 server_ ...

  4. Nginx学习笔记(一) Nginx架构

    Nginx架构 Nginx全程是什么? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. ...

  5. Nginx架构的企业级应用

    Nginx架构的企业级应用 ==================================================== 实现HA高可用集群 实现LB负载均衡集群 Nginx实现反向代理 ...

  6. [转载] 深入 nginx 架构

    原文: http://www.cnbeta.com/articles/402709.htm 了解 nginx 架构帮助我们学习如何开发高性能 web 服务. 为了更好地理解设计,你需要了解NGINX是 ...

  7. nginx架构与基础概念

    1       Nginx架构 Nginx 高性能,与其架构有关. Nginx架构: nginx运行时,在unix系统中以daemon形式在后台运行,后台进程包含一个master进程和多个worker ...

  8. Nginx从入门到放弃-第5章 Nginx架构篇

    5-1 Nginx常见问题_架构篇介绍 5-2 Nginx常见问题_多个server中虚拟主机读取的优先级 5-3 Nginx常见问题_多个location匹配的优先级1 5-4 Nginx常见问题_ ...

  9. 转:初探nginx架构(一)

    来源:http://tengine.taobao.org/book/chapter_02.html 众所周知,nginx性能高,而nginx的高性能与其架构是分不开的.那么nginx究竟是怎么样的呢? ...

随机推荐

  1. 一本QT书,连接MySQL图文并茂

    http://qtdebug.com/index.html http://qtdebug.com/DB-AccessMySQL.html

  2. COJ 0999 WZJ的数据结构(负一)

    WZJ的数据结构(负一) 难度级别:D: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 输入N个模板串Pi和文本串T,输出每个模板串Pi在T ...

  3. Create XHR

    var createXHR = function() { var xhr, last_e; var PROGIDS = [ "Msxml2.XMLHTTP.6.0", //&quo ...

  4. HDU_2044——蜜蜂走蜂房,递推

    Problem Description 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数. 其中,蜂房的结构如下所示.   Input 输入数据的 ...

  5. Codeforces Round #277.5 (Div. 2) --E. Hiking (01分数规划)

    http://codeforces.com/contest/489/problem/E E. Hiking time limit per test 1 second memory limit per ...

  6. 抓取“矢量”的实时交通流量数据

    1. 引言 最近老师有一个需求,就是想要抓取实时的矢量交通流量数据来做分析,类似于百度地图,高德地图的"实时路况"那种.平时的网络抓取工作一般是抓取网页上现成的数据,但是交通流量数 ...

  7. C语言 · 数字三角形 · 算法训练

    问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ...

  8. 我的SD卡乱码解决方案

    转载请注明出处.chendesheng1988是原作者. 问题描述:射频模块读取证件信息后,串口读取的信息存到SD卡,存进去发现汉字是乱码. 解决方案:使用函数WideCharToMultiByte搞 ...

  9. windows服务程序

    首先创建一个myService的窗体程序作为服务安装卸载控制器(管理员身份运行vs,windows服务的安装卸载需要管理员权限)   在同一个解决方案里面添加一个windows服务程序,取名myWin ...

  10. 魅蓝Note有几种颜色 魅蓝Note哪个颜色好看

    http://www.pc841.com/shoujizhishi/39882.html http://news.mydrivers.com/1/359/359443.htm 魅族发布首款千元高性价比 ...