nginx 的基础知识(二)
Nginx 多进程网络模型
- 进程模型 nginx启动后以daemon的方式在后台运行,后台进程包括一个master进程和多个worker进程
- master进程主要作用,接收来自外界的信号;向各worker进程发送信号;监控worker进程的运行状态;当worker进程退出后,会自动重新启动新的worker进程
- worker进程用于处理网络事件,各个worker进程之间对等且相互独立,同等竞争客户端的请求,一个请求只能在一个worker中处理,worker进程数一般为cpu核数
- nginx一般只做高并发处理,基本无io操作,属于cpu密集型操作,处理是瞬时的
- 单核心处理多进程时,是排队处理的
- 每个worker都是单线程的进程,若worker数量大于cpu内核数,则增大进程间切换带来的消耗(lunix是抢占式内核),要使用worker-cpu-affinity配置来绑定cpu内核,不绑定的话,多个worker抢占同一个cpu,会出现同步问题,

nginx进程控制
- 通过master进程实现
- 手动信号 通过kill 向master进程发送信号,kill -hup pid 通知nginx重启
- 自动信号 命令行参数 -s reload 或者 -s stop
网络事件
- 异步非阻塞 类似 libevent master进程先建好需要listen的socket,fork多个worker进程,每个worker进程去accept这个socket;当client连接到来时,所有accept的worker进程都会接到通知,只有一个会accpet成功,共享锁accept-mutex,进程接受到连接以后,开始读取请求,解析请求,处理请求,产生数据返回给客户端,最后断开连接

nginx 的基础知识(二)的更多相关文章
- java 基础知识二 基本类型与运算符
java 基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...
- 菜鸟脱壳之脱壳的基础知识(二) ——DUMP的原理
菜鸟脱壳之脱壳的基础知识(二)——DUMP的原理当外壳的执行完毕后,会跳到原来的程序的入口点,即Entry Point,也可以称作OEP!当一般加密强度不是很大的壳,会在壳的末尾有一个大的跨段,跳向O ...
- Nginx——1.基础知识
Nginx——1.基础知识 作为高速.轻量.高性能等优点集于一身的服务器,Nginx在近些年迅速发展并不断扩大市场份额,甚至在最近其市场份额一举超过微软的IIS,跃身到第二位,仅次于Apache. 但 ...
- Dapper基础知识二
在下刚毕业工作,之前实习有用到Dapper?这几天新项目想用上Dapper,在下比较菜鸟,这块只是个人对Dapper的一种总结. 2,如何使用Dapper? 首先Dapper是支持多种数据库的 ...
- python基础知识(二)
python基础知识(二) 字符串格式化 格式: % 类型 ---- > ' %类型 ' %(数据) %s 字符串 print(' %s is boy'%('tom')) ----> ...
- Java基础知识二次学习--第三章 面向对象
第三章 面向对象 时间:2017年4月24日17:51:37~2017年4月25日13:52:34 章节:03章_01节 03章_02节 视频长度:30:11 + 21:44 内容:面向对象设计思 ...
- Java基础知识二次学习-- 第一章 java基础
基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...
- 快速掌握JavaScript面试基础知识(二)
译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...
- Java基础知识二次学习--第六章 常用类
第六章 常用类 时间:2017年4月26日16:14:49~2017年4月26日16:56:02 章节:06章_01节~06章_06节 视频长度:20:57+1:15+8:44+1:26+11:2 ...
随机推荐
- JDBC_03_反射机制注册驱动
反射机制注册驱动 代码:以类加载的方式注册驱动,因为注册驱动的代码是一个静态代码块,所以用Class.forname()加载该类,静态代码块也会进行加载 import java.sql.*; publ ...
- Property Distribution(DFS)
Property Distribution タナカ氏が HW アールの果樹園を残して亡くなりました.果樹園は東西南北方向に H×W の区画に分けられ.区画ごとにリンゴ.カキ.ミカンが植えられています. ...
- 【死磕ibatis】SqlMapClient 基本操作示例
前言:想要学习ibatis,我这里写了一些关于SqlMapClient 的具体例子,希望对你有帮助.话不多说,直接看例子. 例 1: 数据写入操作(insert, update, delete): s ...
- hdu4544 优先队列(小贪心)
题意: 湫湫系列故事--消灭兔子 Time Limit: ...
- hdu4411 经典费用里建图
题意: 给以一个无向图,0 - n,警察在0,他们有k个警队,要派一些警队去1--n个城市抓小偷, 问所有吧所有小偷全抓到然后在返回0的最小路径和是多少,当地i个城市被攻击的时候他会通知i ...
- Python脚本破解压缩文件口令(zipfile)
环境:Windows python版本2.7.15 Python中操作zip压缩文件的模块是 zipfile . 相关文章:Python中zipfile压缩文件模块的使用 我们破解压缩文件的口令也是用 ...
- Python爬虫之使用正则表达式抓取数据
目录 匹配标签 匹配title标签 a标签 table标签 匹配标签里面的属性 匹配a标签里面的URL 匹配img标签里的 src 相关文章:Linux中的正则表达式 Python中的正则表达式 实例 ...
- POJ2195费用流+BFS建图
题意: 给你一个n*m的地图,上面有w个人,和w个房子,每个人都要进房子,每个房子只能进一个人,问所有人都进房子的路径总和最少是多少? 思路: 比较简单的最大流,直接建立两排, ...
- C#-自动获取IP
//自动获取ip rip是个下拉列表 public void GetIp() { try { string strHostName = Dns.GetHostName(); //得到本机的主机名 IP ...
- Windows核心编程 第十一章 线程池的使用
第11章 线程池的使用 第8章讲述了如何使用让线程保持用户方式的机制来实现线程同步的方法.用户方式的同步机制的出色之处在于它的同步速度很快.如果关心线程的运行速度,那么应该了解一下用户方式的同步机制是 ...