Nginx进程模型


多进程

一个Master进程 多个Worker进程

Master进程

管理Worker进程

  • 对外接口
接收外部的操作(信号)
  • 对内转发
根据外部的操作的不同 通过信号管理Worker
  • 监控
监控worker进程的运行状态worker进程运行异常终止后自动重启worker进程

Worker进程

所有Worker进程都是平等的

  • 实际处理
网络请求,由Worker进程处理
  • Worker进程数量
在nginx.conf中配置一般设置为核心数充分利用cpu资源同时 避免进程数量过多避免进程竞争CPU资源增加上下文切换的损耗

Master工作过程细节


a、Master启动 加载配置 并初始化监听socket 等待连接进来b、Master fork出Worker进程c、新请求到来时 所有Worker进程的listenfd都变为可读d、Worker进程 竞争accept_mutex 获胜的注册listenfd的读事件e、Worker进程 在读事件中 accept当前连接并处理请求

Nginx 的事件处理模型


多阶段处理请求

举例:1、请求地址重写2、权限验证3、内容处理(对应location配置)4、记录日志

过滤数据并加工

举例:1、过滤response的Header2、gzip压缩数据

Nginx进程以及事件处理模型相关推荐

  1. nginx优化-nginx事件处理模型优化use epoll;

    性能优化-nginx事件处理模型优化use epoll; 在events区块中添加 use epol; 在主配置文件nginx.conf中配置 [root@web01 conf]# cat /appl ...

  2. Nginx源码学习(一):nginx进程模型解析

    nginx进程模型 nginx有两类进程,一类称为master进程(相当于管理进程),另一类称为worker进程(实际工作进程).启动方式有两种: 单进程启动:此时系统中仅有一个进程,该进程既充当ma ...

  3. nginx进程模型,事件模型

    众所周知,nginx性能高,而nginx的高性能与其架构是分不开的.那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧. nginx在启动后,在unix系统中会以daemon的方式 ...

  4. Nginx学习之九-负载均衡(客户端请求与Nginx进程间负载均衡)

    本文介绍的负载均衡是针对的客户端请求在多个Nginx进程之间的均衡.注意与客户端请求在多个后端服务器之间的均衡相区别. 负载均衡问题的产生 在nginx中,建立连接的时候,会设计负载均衡问题.在多个子 ...

  5. Nginx学习之Nginx进程

    Nginx学习 Nginx命令 ./nginx:启动Nginx: ./nginx -s stop:关闭Nginx,立即关闭,不管有没有已接受的请求: ./nginx -s reload:重新加载ngi ...

  6. java事件处理模型_从零开始理解JAVA事件处理机制(3)

    我们连续写了两小节的教师-学生的例子,必然觉得无聊死了,这样的例子我们就是玩上100遍,还是不知道该怎么写真实的代码.那从本节开始,我们开始往真实代码上面去靠拢. 事件最容易理解的例子是鼠标事件:我们 ...

  7. 写了个Python脚本监控nginx进程

    写了个Python脚本监控nginx进程 « Xiaoxia[PG] 写了个Python脚本监控nginx进程 接上一文用iptables让SSH服务对陌生人说不.还是有点担心这个学期内,nginx可 ...

  8. linux 关闭nginx进程,Linux环境下启动、停止、重启nginx

    启动 启动代码格式:nginx安装目录地址 -c nginx配置文件地址 例如: [root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /us ...

  9. 13、Java Swing事件监听:事件处理模型和事件监听器

    事件表示程序和用户之间的交互,例如在文本框中输入,在列表框或组合框中选择,选中复选框和单选框,单击按钮等.事件处理表示程序对事件的响应,对用户的交互或者说对事件的处理是事件处理程序完成的. 当事件发生 ...

最新文章

  1. linux中查看日志技巧,日志查看技巧之筛选[linux命令集][排查篇]
  2. Level/levelup-2-API
  3. Java 8中HashMap冲突解决
  4. caffe linux 教程,CentOS7安装Caffe的教程详解
  5. 如何避免form提交进行页面跳转
  6. echo和@echo_如何在Echo Show和Echo Spot上切换到24小时时钟
  7. 【数据结构与算法】双链表V3.0的Java实现
  8. vue怎么根据id获取组件_vue子组件,如何根据父组件传进来的id,去查询详情,并在子组件中显示?...
  9. Range的学习笔记
  10. zabbix2.4.6升级zabbix3.0.8后无法发送报警邮件
  11. 第四周项目1-三角形类的构造函数
  12. My eclipse和Eclipse平台 JSP可视化编程工具
  13. 我的世界1.7.10服务器修改器,我的世界1.7.10 TMI内置修改器安装方法及使用说明...
  14. python图片搜索_用Python构建图片处理搜索引擎
  15. 利用Django创建简单app
  16. ps4手柄驱动linux,Arduino和单片机区别,及Arduino入门教程
  17. TPT Autotester|高效快捷的车辆在环ViL测试工具
  18. 如何在 R 中应用经验法则
  19. 如何使用api调用AI抠图服务
  20. 信奥基本功:打字练习(盲打)

热门文章

  1. 查询Linux充电时间,【充电】Linux学习(二)——常用的linux命令
  2. python实现希尔排序算法_排序算法总结(冒泡排序、直接插入排序、希尔排序)(python实现)...
  3. JS的三大组成(ES,DOM,BOM)
  4. Windows常用快捷键整理
  5. 洛谷P1073 最优贸易
  6. python学习day-4 集合与函数
  7. 【Hadoop】HIVE 数据表 使用
  8. 负载均衡集群HAProxy安装篇
  9. 别傻了,人家离职你也离
  10. OSChina 周三乱弹——真相往往令人内牛满面