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. 微信小程序(九)

    小程序运行环境与基本架构 每个小程序都是运行在它所在的微信客户端上的,通过微信客户端给它提供的运行环境,小程序可以直接获取微信客户端的原生体验和原生能力. wxml视图文件和wxss样式文件都是对渲染 ...

  2. php 递推 递归

    思想:如何利用数学模式,来解决对应的需求问题,然后利用代码实现对应的数据模型(逻辑) 算法:使用代码实现对应的数学模型,从而解决对应的业务问题 递推算法是一种简单的算法,级通过已知条件,利用特定关系得 ...

  3. [cf1515H]Phoenix and Bits

    记$V=2^{20}-1$,即值域范围,也可以作为"全集" 显然与$a_{i}$的顺序无关,对所有$a_{i}$维护一棵trie树 关于如何维护这棵trie树,考虑使用分裂+合并的 ...

  4. [gym102822I]Invaluable Assets

    令$f(x)=\frac{x^{2}+c}{x}$,换言之即$x$物品的性价比的倒数 对其求导即$f'(x)=1-\frac{c}{x^{2}}$,其导数严格递增,换言之即是一个严格下凸函数,记$x_ ...

  5. [nowcoder5668I]Sorting the Array

    令$f(n,b,m)=a[1..n]$(这里下标从1开始),考虑一些性质: 性质1.对于$\forall 1\le i\le n-m+1$,若$\exists 1\le j<i,a[j]> ...

  6. KNN算法实现对iris数据集的预测

    KNN算法的实现 import pandas as pd from math import dist k = int(input("请输入k值:")) dataTest = pd. ...

  7. 一些 tips

    在本博客中,一般写题解的题都是我认为比较有价值的题,然而我还做过一些有一定价值,但并没有达到值得写一篇题解的程度,故将这些题目总结出的套路用一句话概括在这里: 当然如果看到我太久不更请在评论区里催我一 ...

  8. Qtree V

    lmn u 表示 u 所在splay子树最上方点距离最近的白点 rmn u 表示 u 所在splay子树最下方点距离最近的白点 开一个set维护所有虚儿子能走到的最近的白点的距离 考虑pushup, ...

  9. 【R绘图】R 基础(base )低级函数legend绘图?

    ggplot虽然好用,但base才是真正的瑞士军刀,什么都能用,各种自定义图形自由组合,出版级图片用base才是王道.但要达到随心所欲,需要熟练掌握. legend是比较重要的低级函数,有很多细节处理 ...

  10. Yii2 源码分析 入口文件执行流程

    Yii2 源码分析  入口文件执行流程 1. 入口文件:web/index.php,第12行.(new yii\web\Application($config)->run()) 入口文件主要做4 ...