1.初识nginx

摘要:
国王会很快将处理A的结果发送给邮递员。它还解释了nginx的多城市部门结构和异步非阻塞事件处理机制。“事实上,中央系统主控器并没有真正处理这些事务。国王会向主控器发送一个信号,以形成一个新的后续工作人员来处理新的请求。旧工作人员将在完成所有未完成的请求后退休。一个请求是否会由多个工作人员执行。然而,系统会在工作人员之间不断切换,导致大量资源损失:

​在一个遥远的乡村发生了一件事,村里的邮差老王要退休,同时宣布小张成为新一任的邮差,继续为村民服务。这里的村民生活的nginx帝国地域辽阔,人口众多。帝国和百姓沟通的媒介就是各村的邮差。村民平时遇到问题只需要交给邮差,国王就会迅速将处理 a结果交由邮差带回。

这天村民李二将一张名为”https://xxx.com/abc?name=li“ 的凭条交给了小张,在师父老王的陪同下开始了继任工作以来的第一次任务。小张了解到各村都有大量的人去帝国办理事情,将行李包里装的满满当当。正在为自己准备充分而心里暗喜时,却发现师傅老王只是轻装上阵。

小张很疑惑的问师傅:“国家人口众多,国王能处理的过来这么多请求吗?如果要等待很长的时间呢?”。老王则让小张也带些简单物品就上路了,并顺带解释了nginx的多进城的部门结构和异步非阻塞的事件处理机制。

1.初识nginx第1张

首先,nginx国王在首都建立了一个完善的中央政府机构叫master,来接收全国各地的请求。实际上中央系统master并没有真正去处理这些事务,而是交给了自己的几个地方政府worker。master负有监管的责任,当某个worker系统故障瘫痪,或者国王需要更新服务配置时,国王就会向master发送信号,master接收到信号后,会组建一个新的继任者worker来处理新的请求,老的worker将所有未处理的请求完成后就光荣退休了。

小张问:“这么多worker,一个请求会不会被多个worker去执行,而系统在worker间不停切换导致损耗大量的资源?”老王好像早已经知道小张的疑惑,国王安排的worker之间是平等的关系,他们各自复制了和master中央系统一样的结构。一个请求进来,worker会去竞争一把锁accept_mutex,抢到锁之后就开始处理读取,解析,处理请求,产生数据结果返回出来,最终完成这次请求,都只在一个worker中处理的。对于每个worker来说,独立的空间,相互之间不会影响,其他worker发生故障也不会影响自己。

1.初识nginx第2张

小张问:“master将请求分给worker,一个worker处理一个请求,处理速度怎么会快?并发怎么会高呢?”。这就是nginx的“异步非阻塞”了,老王解释道。我们的请求到nginx要经过多部门的一系列操作,nginx同时监控多个事件,如果某一步操作比较耗费时间,nginx就会返回AGAIN信号来告诉我们该事件还没有处理好,需要等待一些时间,nginx在这段时间就去处理其他人的具体请求了,nginx通过这种机制才能高并发的完成众多请求的处理。

这样虽然同时处理的请求就一个,但是在请求间不停地切换,只处理准备好的事件。同时高效率处理大量的请求,而没有产生过多的资源浪费。

冷落街头:
1.初识nginx第3张

免责声明:文章转载自《1.初识nginx》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Gitlab per-recive预处理配置SAP内存、ABAP内存下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Openresty常用指令和参数

--[[ 参考文档: https://www.nginx.com/resources/wiki/modules/lua/#nginx-api-for-lua Nginx Lua模块指令: Nginx共11个处理阶段,而相应的处理阶段是可以做插入式处理,即可插拔式架构; 另外指令可以在http、server、server if、locatio...

nginx路径设置(web)

原文 https://www.jianshu.com/p/57db2c5d0cb9 语法 root 语法:root path 默认值:root html 配置段:http、server、location、if alias 语法:alias path 配置段:location root&alias区别 root 如果一个请求的 URI 是/web...

简单的 nginx 多站点配置

测试环境:基于CentOS6.8 编译安装LNMP(http://www.cnblogs.com/afee666/p/6836161.html) 一 需求 在一个 VPS 主机上配置 web 服务器,实现通过一个 IP 访问多个站点或域名。 假设: IP地址: 66.88.33.11 域名1 test1.example.com放在 /web/www/tes...

docker部署django项目、mysql主从搭建、django实现读写分离

目录 docker部署django项目 1.1 基于python基础镜像 将本地django项目打包并发到远程服务器上 将服务器上的.zip django项目解压 部署的具体流程 1.2 基于dockerfile 2 mysql主从搭建 一 主从配置原理 二 操作步骤 2.1我们准备三台装好mysql的服务器(我在此用docker模拟...

gitlab 启用HTTPS

NGINX设置 启用HTTPS  警告  Nginx配置会告诉浏览器和客户端,只需在未来24个月通过安全连接与您的GitLab实例进行通信。通过启用HTTPS,您需要至少在24个月内为您的实例提供安全连接。 默认情况下,omnibus-gitlab不使用HTTPS。如果要为gitlab.example.com启用HTTPS,请将以下语句添加到/etc/gi...

Nginx(一)-windows下的安装配置

第一步 下载 官网下载地址 因为只是测试这里选择最新版本1.13.9 下载完成得到zip压缩包 解压后得到如下目录 第二步 启动nginx注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程 使用Win+R快捷键打开命令行窗口,并切换到nginx.exe所在的目录 执行如下指...