1 Nginx请求处理流程

2 Nginx进程结构

3 Nginx进程管理:信号

3.1 Master进程

  • 监控worker进程

    • CHLD
  • 管理worker进程
  • 接收信号
    • TERM,INT
    • QUIT
    • HUP
    • USR1
    • USR2
    • WINCH

3.2 Worker进程

  • 接收信号

    • TERM,INT
    • QUIT
    • USR1
    • WINCH

3.3 nginx命令行

  • reload:HUP
  • reopen:USR1
  • stop:TERM
  • quit:QUIT

4 reload 流程

1)向master进程发送HUP信号(reload命令)

2)master进程校验配置语法是否正确

3)master进行打开新的监听端口

4)master进程用新配置启动新的worker子进程

5)master进程向老worker子进程发送QUIT信号

6)老worker进程关闭监听句柄,处理完当前连接后结束进程

5 热升级流程

1)将旧Ningx文件换成新Nginx文件(注意备份)

2)向master进程发送USR2信号

3)master进程修改pid文件名,加后缀.oldbin(进程自动改的,不需要手动改)

4)master进程用新Nginx文件启动新master进程

5)向老master进程发送QUIT信号,关闭老master

6)回滚:向老master发送HUP,向新master发送QUIT

6 worker进程:优雅的关闭

1)设置定时器worker_shutdown_timeout

2)关闭监听句柄

3)关闭空闲连接

4)在循环中等待全部连接关闭

5)退出进程

7 网络相关

7.1 网络传输

  • 应用层
  • 传输层
  • 网络层
  • 链路层
  • 物理层

7.2 TCP流与报文

7.3 TCP协议与非阻塞接口

  • 读事件

    • Accept建立连接
    • Read读消息
  • 写事件
    • Write写信息

8 Nginx事件循环

8.1 epoll

前提

高并发连接中,每次处理的活跃连接数量占比很小

实现

红黑树,链表

使用

创建,操作(添加/修改/删除),获取句柄,关闭

9 模块分类

Nginx 架构基础的更多相关文章

  1. nginx架构与基础概念

    1       Nginx架构 Nginx 高性能,与其架构有关. Nginx架构: nginx运行时,在unix系统中以daemon形式在后台运行,后台进程包含一个master进程和多个worker ...

  2. Linux架构之Nginx Web基础1

    第41章 Nginx Web基础入门 41.1 Nginx部署 41.1.1 Nginx的安装方式   源码编译 官方仓库 epel仓库 优点 规范 安装简单 安装简单   便于管理 配置易读   缺 ...

  3. [转载] 深入 nginx 架构

    原文: http://www.cnbeta.com/articles/402709.htm 了解 nginx 架构帮助我们学习如何开发高性能 web 服务. 为了更好地理解设计,你需要了解NGINX是 ...

  4. Magento 架构基础知识概述

    Megento 架构基础知识概述 Magento整合了面向对象的基于PHP的应用程序的核心架构原则.这些一般原则的综合讨论既有在线的,也有印刷形式.以下讨论主要关注这些主题如何直接应用于Magento ...

  5. 微服务架构基础之Service Mesh

    ServiceMesh(服务网格) 概念在社区里头非常火,有人提出 2018 年是 ServiceMesh 年,还有人提出 ServiceMesh 是下一代的微服务架构基础. 那么到底什么是 Serv ...

  6. nginx实现基础web

    目录 nginx实现基础web 什么是lnmp lnmp架构如何工作 Nginx与Fast-CGO详细工作流程 LNMP环境准备 一,部署LNMP 1.使用nginx官方源 2.创建nginx用户 3 ...

  7. Nginx Web 基础入门

    目录 Nginx Web 基础入门 Nginx快速安装 两种方式部署Nginx 如何升级nginx或者添加功能 使用systemd管理nginx nginx相关配置文件 nginx的配置文件详解 虚拟 ...

  8. nginx 的基础配置[转]

    nginx 的基础配置 分类: 工具软件2013-11-13 23:26 11人阅读 评论(0) 收藏 举报   目录(?)[-] 管理配置文件 全局配置 虚拟机server配置 location配置 ...

  9. Nginx学习笔记(一) Nginx架构

    Nginx架构 Nginx全程是什么? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. ...

随机推荐

  1. .net工程师学习vue的心路历程(一)

    实习一年后,想做一个属于自己的博客网站,准备用core api去搭建服务端接口,前端准备采用vue这样的一个框架.本身时一个服务端程序员,所以来学习记录一些vue的知识点,有什么不足的希望大家指正,谢 ...

  2. Redis | 第一部分:数据结构与对象 中篇《Redis设计与实现》

    目录 前言 1. 跳跃表 1.1 跳跃表与其节点的定义 1.2 跳跃表的API 2. 整数集合 2.1 整数集合的实现 2.2 整数集合的类型升级 2.3 整数集合的API 3. 压缩列表 3.1 压 ...

  3. nrf52810/52832开发板能跑,自己的PCB不能跑的原因

    1.PCB图片对比 这是我的开发板原理图: 这是我画的PCB原理图: 发现其实开发板上就是比我的多了两个外部晶振. 例程代码一般都是用外部晶振作为时钟,所以用例程的代码跑不通我的PCB. 2.解决办法 ...

  4. airTest小程序自动化踩坑记(android设备)

    一:怎么开启微信小程序的webview调试定位元素 操作如下(android设备): 1.打开X5内核的方法在聊天窗口任意输入"http://debugx5.qq.com" 点击& ...

  5. Vue3学习与实战 · 全局挂载使用Axios

    在vue2中会习惯性的把axios挂载到全局,以方便在各个组件或页面中使用this.$http请求接口.但是在vue3中取消了Vue.prototype,在全局挂载方法和属性时,需要使用官方提供的gl ...

  6. html+css第九篇

    热区: <img src="img/login.gif" alt="" border="0" usemap="#Map&qu ...

  7. jmeter中执行kafka topic指令

    前置条件 kafka版本:2.2.1 jmeter版本:5.3 插件:ApacheJMeter_ssh-1.2.0.jar 1.拷贝 ApacheJMeter_ssh-1.2.0.jar 到/lib/ ...

  8. 关闭 IDEA 自动更新

    关闭 IDEA 的自动检查更新(截图idea 2020 2.x) idea 右下角会有这样的更新提示 2. 关闭 idea 自动检查更新 取消勾选 Automatically check update ...

  9. 2基因组间鉴定SV

    本文学习费章军老师文章Genome of Solanum pimpinellifolium provides insights into structural variants during toma ...

  10. 关于ARM的PC指针(什么时候PC+8,PC+4,PC-4,PC-8)转

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.                                                 ...