服务器-Nginx设计架构

服务器-Nginx设计架构

Nginx服务器架构

Nginx服务器启动后,产生一个主进程,主进程执行一系列工作后产生一个或多个工作进程。

如下图所示:Nginx服务器的结构大致分为主进程、工作进程、后端服务器和缓存。

  • 主进程主要进行:Nginx配置文件解析、数据结构初始化、模块配置和注册、信号处理、网络监听生成、工作进程生成和管理。
  • 工作进程主要进行:进程初始化、模块调用和请求处理等。
  • 缓存索引重建及管理进程:cache模块,主要由缓存索引重建和缓存索引管理两类进程完成。缓存索引重建是在Nginx服务启动一段时间后由主进程生成,在缓存元数据重建完成后自动退出。主要工作是:根据本地磁盘上的缓存文件在内存中建立索引元数据库,启动后对本地磁盘上存放缓存文件的目录结构进行扫描,检查内存中已有的缓存你数据元是否正确,并更新索引元数据库;缓存索引管理进程一般存在于主进程的整个生命周期,负责对缓存索引进行管理。主要负责对元数据是否过期做出判断。

进程交互

Master-worker交互

主进程会建立一张工作进程表,存放所有未退出的,主进程通过一个单向管道向工作进程发送指令等信息。

Worker-Worker交互

工作进程之间的交互,首先要得到彼此的信息,建立管道通信。当工作进程w1需要向w2发送指令时,首先在主进程给它的其他工作进程信息中找到w2的进程ID,然后将正确的指令写入指向w2的通道。w2捕捉到管道中的时间后,解析指令并采取相应的措施。完成worker之间的交互

Run Loops时间处理循环模型

Run Loops指的是进程内部用来不停的调配工作,对事件进行循环处理的一种模型。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏挖坑填坑

Asp.net+Vue2构建简单记账WebApp之三(使用Vue-cli构建vue.js应用)

15630
来自专栏黑泽君的专栏

Ubuntu 下环境搭建系列 —— 安装 Google Chrome

Ubuntu 16.04 LTS 默认安装的是 Firefox ,但是还是习惯使用 Google Chrome ,下面就简单介绍下如何在 Ubuntu 16.0...

17510
来自专栏醉码

cetnos 7.4 kafa本地环境搭建

37660
来自专栏别先生

hadoop伪分布式集群搭建与安装(ubuntu系统)

1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip; ? 2:使用Xsheel软件远程链接自己的虚拟机,方便操作。...

36790
来自专栏LanceToBigData

MySQL(二)之服务管理与配置文件修改和连接MySQL

上一篇给大家介绍了怎么在linux和windows中安装mysql,本来是可以放在首页的,但是博客园说“安装配置类文件”不让放在首页。接下来给大家介绍一下在li...

26380
来自专栏linux系统运维

rsync通过服务同步,linux系统日志,screen工具

21740
来自专栏章鱼的慢慢技术路

Linux网络的设置

1.9K50
来自专栏编程坑太多

一个简单的Django项目

16040
来自专栏运维小白

2.1/2.2 系统目录结构

ls (全称list) 用来列取目录和文件 若是想想修改sshd配置文件,需要到**/etc/ssh/sshd_config**中修改 实验,创建普通用户 ...

20560
来自专栏smy

windows下操作linux虚拟机映射网络驱动器中文件提示chmod权限不足解决方案

为了方便操作,linux虚拟机会通过windows下连接网络驱动器的方式共享自己的文件,对于前端来说,我想把gulp放在windows磁盘,操作虚拟机中的php...

20830

扫码关注云+社区

领取腾讯云代金券