【四旋翼飞行器】76小时吃透四轴算法!史上最强软硬结合实战项目,👉戳此立抢👈

Nginx架构介绍 Nginx服务器模型分析

2019-01-10 16:32 次阅读

Nginx是一款免费的、开源的、高性能、模块化、轻量级的HTTP服务器、反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。

很多大型的网站都使用Nginx,如:百度、京东、新浪、网易、腾讯、淘宝等。

1.Nginx的整体架构简介

Nginx架构介绍 Nginx服务器模型分析

1)Nginx启动后,会产生一个主进程,主进程执行一系列的工作后会产生一个或者多个工作进程;

2)在客户端请求动态站点的过程中,Nginx服务器还涉及和后端服务器的通信。Nginx将接收到的Web请求通过代理转发到后端服务器,由后端服务器进行数据处理和组织;

3)Nginx为了提高对请求的响应效率,降低网络压力,采用了缓存机制,将历史应答数据缓存到本地。保障对缓存文件的快速访问;

2. Nginx的模块化

高度模块化的设计是 Nginx 的架构基础。Nginx严格遵循“高内聚,低耦合”的原则,将服务器设计为多个模块,每个模块就是一个独立的功能模块,只负责自身的功能。

Nginx架构介绍 Nginx服务器模型分析

这5个模块从上到下重要性依次递减。

(1)核心模块

核心模块是Nginx服务器正常运行必不可少的模块,如同操作系统的内核。它提供了Nginx最基本的核心服务。像进程管理、权限控制、错误日志记录等;

(2)标准HTTP模块

标准HTTP模块支持标准的HTTP的功能;

(3)可选HTTP模块

可选HTTP模块主要用于扩展标准的HTTP功能,让Nginx能处理一些特殊的服务;

(4)邮件服务模块

邮件服务模块主要用于支持Nginx的邮件服务;

(5)第三方模块

第三方模块是为了扩展Nginx服务器应用,完成开发者想要的功能;

3.Nginx的Web请求处理机制

从架构设计上说,Nginx服务器是与众不同的。其一在于它的模块化设计;其二也是更重要的一点在于它对与客户端请求的处理机制上。 Nginx请求处理机制结合多进程机制和异步非阻塞机制。

1)多进程

多进程方式指服务器每当收到一个客户端请求时就由服务器主进程生成一个子进程出来和客户端建立连接进行交互,直到连接断开,该子进程就结束了。多进程方式的优点是设计简单,各个子进程相对独立,处理客户端请求时彼此不受干扰;缺点是操作系统生成一个子进程需要进行内存复制等操作,在资源和时间上会产生一定的开销;当有大量请求时,会导致系统性能下降;

2)异步非阻塞

发送方向接收方发送请求后,不用等待响应,可以继续其他工作;接收方处理请求时进行的IO操作如果不能马上得到结果,也不必等待,而是马上返回去去做其他事情。当IO操作完成以后,将完成状态和结果通知接收方,接收方再响应发送方。

4. Nginx服务器的事件驱动模型

从上面我们可以知道,Nginx服务器的工作进程调用IO后,就取进行其他工作了;当IO调用返回后,会主动通知工作进程。像select/poll/epoll等这样的系统调用就是用来支持这种解决方案的。这些系统调用也常被称为事件驱动模型,他们提供了一种机制就只让进程同时处理多个并发请求,不用关心IO调用的具体状态。IO调用完全由事件驱动模型来管理。

Nginx架构介绍 Nginx服务器模型分析

如上图所示,Nginx的事件驱动模型由事件收集器、事件发送器和事件处理器三部分基本单元组成。

select,poll,epoll都是IO多路复用的机制。I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的。

5. Nginx服务器Master-Worker进程处理模型

Nginx架构介绍 Nginx服务器模型分析

Nginx服务器在使用Master-Worker模型时,会涉及到主进程和工作进程的交互和工作进程之间的交互。这两类交互都依赖于管道机制。

Master-Worker交互

这条管道与普通的管道不同,它是由主进程指向工作进程的单向管道,包含主进程向工作进程发出的指令,工作进程ID等;同时主进程与外界通过信号通信;

Worker-Worker交互

这种交互是和Master-Worker交互是基本一致的,但是会通过主进程。工作进程之间是相互隔离的,所以当工作进程W1需要向工作进程W2发指令时,首先找到W2的进程ID,然后将正确的指令写入指向W2的通道。W2收到信号采取相应的措施。

通过这篇文章,我们对Nginx服务器的整体架构有了一个整体的认识。另外推荐大家多看看Nginx的源码,以便能更好地领悟 Nginx的设计思想。

收藏 人收藏
分享:

评论

相关推荐

如何从Linux中探讨Ⅵ编辑器的教学问题

从Linux中文本编辑器访的主要教学方法和常见的教学问题两个方面,探讨了Ⅵ编辑器的教学问题。
发表于 01-18 15:07 8次 阅读
如何从Linux中探讨Ⅵ编辑器的教学问题

如何使用同态加密和Bloom过滤器进行云外包多方隐私集合比较协议

针对目前多方隐私集合比较( PSI)协议计算效率低下以及应用于云环境中会造成用户隐私信息泄露的问题,....
发表于 01-18 13:51 7次 阅读
如何使用同态加密和Bloom过滤器进行云外包多方隐私集合比较协议

单片机通过WIFI模块传输数据到服务器的大体思路是怎么样的?

单片机通过WIFI模块传输数据到 服务器,大体思路是怎么样的?求大神指导一下,第一次做这种东西...
发表于 01-18 06:35 12次 阅读
单片机通过WIFI模块传输数据到服务器的大体思路是怎么样的?

基于Java-EE的中小企业信用评级系统的架构

我国中小企业融资难的问题已成为制约中小企业发展的主要障碍。而造成融资难的最根本的原因是企业信用问题。....
发表于 01-17 14:32 18次 阅读
基于Java-EE的中小企业信用评级系统的架构

即插即用的前端解决方案的研究分析

随着数据中心服务器和电信设备中分布式电源架构(DPA)和中间总线架构(IBA)的激增,系统设计人员正....
的头像 电子设计 发表于 01-16 08:02 157次 阅读
即插即用的前端解决方案的研究分析

请问GPRS如何跟服务器进行双向的网络数据传输的

请问GPRS如何跟服务器进行双向的网络数据传输的。我的意思就是GPRS如何发送数据到服务器,那么GPRS又是如何接受到服...
发表于 01-16 06:35 30次 阅读
请问GPRS如何跟服务器进行双向的网络数据传输的

本周半导体:业界最高性能!华为发布7nm服务器处理器鲲鹏920

据英国《金融时报》报道,IBM已开发了第一台独立的量子计算机,将一些全球最先进的科学技术集成到一个9....
的头像 电子发烧友网工程师 发表于 01-15 17:39 521次 阅读
本周半导体:业界最高性能!华为发布7nm服务器处理器鲲鹏920

集群的作用及搭建方法及设计方案

数据量和访问量:估算应用需要的数据量和总访问量(考虑业务发展,留有冗余),结合每个主节点的容量和能承....
的头像 电子发烧友网工程师 发表于 01-15 16:43 153次 阅读
集群的作用及搭建方法及设计方案

英特尔10nm在消费级与服务器端布局了IceLake架构处理器

PC产业上一次的大规模变革还要追溯到8年前。英特尔在大幅革新低电压U系列处理器功耗与性能的同时,也适....
发表于 01-15 10:00 147次 阅读
英特尔10nm在消费级与服务器端布局了IceLake架构处理器

华为正式推出首个服务器芯片鲲鹏920

1月7日,从代表着中国创新之城的深圳,传来了一个喜讯!华为正式推出了首个服务器芯片 —— 鲲鹏920....
的头像 WPR 发表于 01-14 14:15 357次 阅读
华为正式推出首个服务器芯片鲲鹏920

wincc的瘦客户端解决方案

WebUX 目前并不支持所有的图形编辑器对象,而且有些对象的显示样式会有所不同,对象功能也会有所限制....
的头像 工控帮 发表于 01-12 10:57 263次 阅读
wincc的瘦客户端解决方案

如何使用Java ME和Servlet进行移动成绩查询系统的设计实现

简要地分析系统架构,并利用J2ME/Servlet技术设计了一个移动成绩查询系统.列举服务器端和客户....
发表于 01-11 16:20 31次 阅读
如何使用Java ME和Servlet进行移动成绩查询系统的设计实现

http_net模块可以将http重定向到https连接吗?

我想知道,HTTPNET服务器是否可以监听端口80来输入连接,然后将它们重定向到端口443?我的应用程序有一个HTTPS服务器...
发表于 01-11 10:50 18次 阅读
http_net模块可以将http重定向到https连接吗?

服务器云端需求急增 英特尔龙头宝座恐不保

人工智能(AI)、虚拟实境(VR)∕扩增实境(AR)、5G等新技术、新应用的演进,带动服务器持续成长....
的头像 DIGITIMES 发表于 01-11 10:04 552次 阅读
服务器云端需求急增 英特尔龙头宝座恐不保

AMD发布全球首款7纳米GPU,高端游戏市场狙击英伟达

这个消息看起来很有意思,其实从技术上讲,AMD并没有发布任何新的GPU,(新显卡仍然沿用与上一代旗舰....
的头像 新智元 发表于 01-11 09:04 440次 阅读
AMD发布全球首款7纳米GPU,高端游戏市场狙击英伟达

存储器产业步入景气向下循环 服务器进入库存调整期

数据中心客户也呈现库存升高的调整期,继苹果日前下调财测后,三星电子(Samsung Electron....
的头像 DIGITIMES 发表于 01-10 16:54 641次 阅读
存储器产业步入景气向下循环 服务器进入库存调整期

ARM服务器成本偏高 华为可能会走大机器的商业模式

日前,华为发布了ARM服务器芯片鲲鹏920,以及搭载鲲鹏920的ARM服务器。
的头像 科工力量 发表于 01-10 10:39 986次 阅读
ARM服务器成本偏高 华为可能会走大机器的商业模式

SQL Server 2005数据库的应用手册

SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上要比Acc....
发表于 01-10 08:00 29次 阅读
SQL Server 2005数据库的应用手册

为什么GPU在各个企业的服务器中随处可见

选择NVIDIA vGPU解决方案为AI、富媒体、混合云和其他应用程序带来操作、成本和生产效率优势。
的头像 英伟达NVIDIA企业解决方案 发表于 01-09 16:47 420次 阅读
为什么GPU在各个企业的服务器中随处可见

如何使用Modbus IO服务器DSC模块和Real-Time模块

Modbus是一种应用程序层的通信协议,用于在不同类别的总线和网络连接的设备之间进行客户端-服务器通....
发表于 01-09 08:00 32次 阅读
如何使用Modbus IO服务器DSC模块和Real-Time模块

腾讯通RTX2009正式版免费下载

腾讯通RTX(Real Time eXchange)是腾讯公司推出的企业级即时通信平台。企业员工可以....
发表于 01-09 08:00 21次 阅读
腾讯通RTX2009正式版免费下载

HTTP教程之HTTP权威指南中文pdf版免费下载

HTTP(Hypertext Transfer Protocol,超文本传输协议①)是在万维网上进行....
发表于 01-08 16:20 50次 阅读
HTTP教程之HTTP权威指南中文pdf版免费下载

jBPM入门教程之深入浅出的jBPM电子教程PDF版免费下载

JBOSS jBPM 是一个灵活的、可扩展的工作流管理系统。JBOSS jBPM 拥有直观的流程语言....
发表于 01-08 15:51 29次 阅读
jBPM入门教程之深入浅出的jBPM电子教程PDF版免费下载

Linux服务器搭建实践详解pdf中文版免费下载

本书首先对Linux操作系统进行了相关概述,并讲解了安装Red Hat Enterprise Lin....
发表于 01-08 14:55 38次 阅读
Linux服务器搭建实践详解pdf中文版免费下载

华为表示鲲鹏920是目前业界最高性能ARM-based处理器

据了解,该处理器采用7nm制造工艺,基于ARM架构授权,由华为公司自主设计完成。通过优化分支预测算法....
的头像 电子发烧友网工程师 发表于 01-08 13:58 1137次 阅读
华为表示鲲鹏920是目前业界最高性能ARM-based处理器

唐山国土信息化带动管理现代化,推动IT架构创新发展

随着我国信息化建设速度加快以及各级政府对政务信息化建设重视程度日趋提高,政府行业信息化建设呈现蓬勃发....
发表于 01-06 11:04 198次 阅读
唐山国土信息化带动管理现代化,推动IT架构创新发展

存储服务器的作用

本视频主要详细介绍了存储服务器的作用,分别是文件共享、数据备份、网络打印、多媒体文件共享、媒体服务器....
的头像 发烧友学院 发表于 01-06 10:12 304次 阅读
存储服务器的作用

如何使用两段式的加速资源部署算法提高网络利用率

设计硬件加速机制,解决软件定义网络/网络功能虚拟化( SDN/NFV)架构中虚拟网络功能(VNF)的....
发表于 01-04 08:51 30次 阅读
如何使用两段式的加速资源部署算法提高网络利用率

如何使用生成少数类技术进行深度自动睡眠分期模型设计说明

针对现阶段可用睡眠脑电数据皆为类不平衡小数据集,深度学习模型的直接迁移应用所取得的分期效果较差的问题....
发表于 01-03 16:07 46次 阅读
如何使用生成少数类技术进行深度自动睡眠分期模型设计说明

服务器通过wifi下发命令给设备,设备响应很及时,可是设备状态通过wifi上传给服务器却很久且经常断开

WIFI问题:服务器通过wifi下发命令给设备,设备响应很及时,可是设备状态通过wifi上传给服务器却很久,且经常断开为啥 谢谢...
发表于 01-03 15:34 127次 阅读
服务器通过wifi下发命令给设备,设备响应很及时,可是设备状态通过wifi上传给服务器却很久且经常断开

如何在ARM开发板上实现WEB服务器设计制作

随着计算机、通信、自动控制、微电子等技术的发展。电器设备上网已经成为现实。与传统的单片机相比,嵌入式....
的头像 嵌入式ARM 发表于 01-03 14:49 428次 阅读
如何在ARM开发板上实现WEB服务器设计制作

PC市场的发展与AMD、英特尔、NVIDIA三大厂商的表现息息相关

NVIDIA的股价去年Q4季度跌了54%,导致NVIDIA股票成为标普500指数中的最大输家,而导致....
的头像 电子发烧友网工程师 发表于 01-03 11:16 1814次 阅读
PC市场的发展与AMD、英特尔、NVIDIA三大厂商的表现息息相关

LED控制卡教程详细培训资料免费下载

本文档的主要内容详细介绍的是LED控制卡教程详细培训资料免费下载:1.控制卡的使用场合范围,2.控制....
发表于 01-03 10:40 47次 阅读
LED控制卡教程详细培训资料免费下载

如何使用Android应用程序安装包隐蔽下载劫持漏洞

在Android应用程序安装包的发布、下载过程中,往往很容易受到下载劫持攻击。受到常规下载劫持攻击的....
发表于 01-03 09:09 62次 阅读
如何使用Android应用程序安装包隐蔽下载劫持漏洞

云服务器的优点

本视频主要详细介绍了云服务器的优点,分别是灵活性、高性能、方便性、数据安全性、稳定性、方便性、网络安....
的头像 发烧友学院 发表于 01-02 16:34 574次 阅读
云服务器的优点

如何在云计算环境下进行资源调度算法的研究

云计算作为一种新兴的商业计算模型被提出以来,经过学术界与产业界的不断推进,云计算正逐渐从理论走向实践....
发表于 01-02 15:18 33次 阅读
如何在云计算环境下进行资源调度算法的研究

如何使用计数型布隆过滤器进行可排序密文检索的方法概述

云计算环境下密文检索困难,已有的可搜索加密方案存在时间效率低、文件检索索引不支持更新、检索结果不能实....
发表于 01-02 15:17 29次 阅读
如何使用计数型布隆过滤器进行可排序密文检索的方法概述

欧盟将为14个开源项目漏洞赏金计划支付赏金

Reda声明称,“该问题让很多人意识到免费和开源软件对网络及其他基础设施的完整性与可靠性的重要性。和....
的头像 E安全 发表于 01-02 15:15 511次 阅读
欧盟将为14个开源项目漏洞赏金计划支付赏金

盘点华为自研ARM服务器计算芯片

日前,华为在北京召开智能计算大会暨中国智能计算业务战略发布会,会上正式宣布其服务器产品线升级为华为智....
的头像 EDA365 发表于 01-02 14:50 650次 阅读
盘点华为自研ARM服务器计算芯片

如何使用jumpserver搭建堡垒机的详细资料说明

首先,jumpserver是什么呢?Jumpserver 是一款由Python编写开源的跳板机(堡垒....
的头像 马哥Linux运维 发表于 12-31 14:34 541次 阅读
如何使用jumpserver搭建堡垒机的详细资料说明

inotify之inotifywait命令详解

无论是手动执行 rsync 还是把 rsync 客户端发出的数据同步请求命令做成周期性任务计划, 每....
的头像 阿铭linux 发表于 12-31 09:01 409次 阅读
inotify之inotifywait命令详解

2019网络威胁趋势展望

据SecurityToday 12月26日报道,2018年发生了史上影响人数最多的数据泄漏事件,脸书....
的头像 E安全 发表于 12-28 14:03 601次 阅读
2019网络威胁趋势展望

云环境下如何使用运算电路进行同态认证的方案说明

针对云服务器上数据验证效率低的问题,为能够在正确执行用户指令的情况下依然保持对数据的高效验证,构造了....
发表于 12-27 16:03 328次 阅读
云环境下如何使用运算电路进行同态认证的方案说明

Flexlm工具不稳定

我正面临着Vivado的flexera lmtools的一些问题。 许可证服务器时不时地停机。 我在Windows 2012服务器上运行了两个版本的fle...
发表于 12-27 10:49 57次 阅读
Flexlm工具不稳定

怎么调试日志文件的路径

我将flexera许可证工具下载到我的服务器以配置许可证管理器。 在此过程中,我必须浏览到lmgrd,许可证文件和日志文件。 我没有...
发表于 12-27 10:47 44次 阅读
怎么调试日志文件的路径

Gartner公司公布了2018年第三季度全球服务器市场调查报告

从具体产品形态看,多节点、机架类服务器增长十分稳健,销售额分别同比增长75.2%和31.1%。刀片和....
的头像 浪潮存储 发表于 12-26 14:35 1602次 阅读
Gartner公司公布了2018年第三季度全球服务器市场调查报告

请问在ATOLLIC TRUESTUDIO开发工具如何使用JLINK调试

已经在调试配置中将"调试探头”设置为SEGGER J-LINK 但是点击调试按钮,弹出启动GDB服务器错误,没有发现执行,请...
发表于 12-26 08:53 173次 阅读
请问在ATOLLIC TRUESTUDIO开发工具如何使用JLINK调试

MES系统内部运行逻辑的详细资料说明

对于一套MES系统,我们不仅要看到它表面上有哪些功能,更重要的是要看到MES系统的内部运行逻辑,就像....
发表于 12-26 08:00 191次 阅读
MES系统内部运行逻辑的详细资料说明

Linux操作系统的四道测试题和答案概述

本文档的主要内容详细介绍的是Linux操作系统的四道测试题和答案概述。
的头像 嵌入式ARM 发表于 12-25 18:51 793次 阅读
Linux操作系统的四道测试题和答案概述

阿里巴巴再度开放一份计算机集群的真实数据集(Alibaba Cluster Data V2018)

究竟什么是 DAG?离线计算任务,例如 Map Reduce、Hadoop、Spark、Flink ....
的头像 人工智能见闻 发表于 12-25 16:31 1498次 阅读
阿里巴巴再度开放一份计算机集群的真实数据集(Alibaba Cluster Data V2018)

国产自研的突破 华为首次公布ARM服务器芯片

12月21日,华为于北京召开发布会,公布其智能计算战略,正式宣布其服务器产品线升级为华为智能计算业务....
的头像 满天芯 发表于 12-25 15:06 874次 阅读
国产自研的突破 华为首次公布ARM服务器芯片

美公司员工探讨中国为什么不受发达国家待见

要说问题,三四十年前问题更多,八十年代的公知讲喊的是“河殇”,但中国没有完蛋,还是走过来了。风物长宜....
的头像 电子发烧友网工程师 发表于 12-25 09:14 730次 阅读
美公司员工探讨中国为什么不受发达国家待见

MES系统在电子工厂的发展程序如何

 MES软件即制造企业生产过程执行管理软件,是一套面向制造企业车间执行层的生产信息化管理系统。MES....
发表于 12-25 08:00 223次 阅读
MES系统在电子工厂的发展程序如何

一个知名零售企业ERP系统数据库优化经典案例

保存个单据要好几分钟,很多操作都超时,尤其到下午4点左右各种超时,收款什么的都收不了,查个报表一个小....
的头像 马哥Linux运维 发表于 12-24 17:24 810次 阅读
一个知名零售企业ERP系统数据库优化经典案例

如何进行高效的可证安全短代理签名方案提高签名主服务器的效率

代理签名在大规模无线工控物联网中应用广泛,利用代理签名可以大大提高签名主服务器的效率。为适应带宽受限....
发表于 12-24 14:40 125次 阅读
如何进行高效的可证安全短代理签名方案提高签名主服务器的效率

中国电信IT设备集中采购项目公布烽火通信再次中标

近日,中国电信公示了2018年统谈分签类IT设备集中采购项目(服务器部分)候选人名单,烽火通信凭借深....
发表于 12-23 10:42 431次 阅读
中国电信IT设备集中采购项目公布烽火通信再次中标

请问Labview访问PGSQL如何配置ODBC?

求大神帮忙看看。PGSQL数据库已经安装,ODBC也已经安装。但是在配置ODBC的时候,需要连接服务器。我是本机电脑,服...
发表于 12-22 12:00 170次 阅读
请问Labview访问PGSQL如何配置ODBC?

曙光服务器中标中国电信IT设备采购项目

中国电信作为5G智能生态的倡导者,拥有覆盖全国城乡、通达世界各地的通信信息服务网络,在持续打造领先的....
发表于 12-22 09:19 234次 阅读
曙光服务器中标中国电信IT设备采购项目

TF之Tensorboard实践:将神经网络Tensorboard形式得到eventsouttfevents文件+dos内运行该文件本地服务器输出到网页可视化

TF:TF之Tensorboard实践:将神经网络Tensorboard形式得到eventsouttfevents文件+dos内运行该文件本地服务器输出到网页可视...
发表于 12-21 10:43 69次 阅读
TF之Tensorboard实践:将神经网络Tensorboard形式得到eventsouttfevents文件+dos内运行该文件本地服务器输出到网页可视化

从远程服务器检索有关PIC需求的数据

Heloi需要检索存储在远程服务器的TXT文件中的非常简单的数据,即:DATA TXT22.5,请您告诉我是否可以读取该文件并用G...
发表于 12-17 16:47 70次 阅读
从远程服务器检索有关PIC需求的数据