进程

master进程

Nginx在启动后,会有一个master进程和多个worker进程。master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控 worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。

worker进程

基本的网络事件,则是放在worker进程中来处理了。多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。worker进程的个数是可以设置的,一般我们会设置与机器CPU核数一致,这里面的原因与Nginx的进程模型以及事件处理模型是分不开的。

过程

1.启动--Nginx在启动时,会解析配置文件,得到需要监听的端口与IP地址,

2.初始化-然后在Nginx的master进程里面,先初始化好这个监控的socket(创建socket,设置addrreuse等选项,绑定到指定的IP地址端口,再listen),

3.多进程--然后再fork(一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(work进程) )出多个子进程出来,然后子进程会竞争accept新的连接。 
4.连接--此时,客户端就可以向Nginx发起连接了。当客户端与Nginx进行三次握手,与Nginx建立好一个连接后,某一个子进程会accept成功,得到这个建立好的连接的socket,然后创建Nginx对连接的封装,即ngx_connection_t结构体。 
5.交换--接着,设置读写事件处理函数并添加读写事件来与客户端进行数据的交换。最后,Nginx或客户端来主动关掉连接,到此,一个连接就寿终正寝了。

应用

在近期一些项目的开发过程中,主要是使用Nginx和Tomcat来搭建高性能负载均衡集群,

即使用Nginx的反向代理功能来实现请求的分发,关于Nginx和Tomcat的组合使用,不在这里重复造轮子

Linux的Nginx五:进程|过程相关推荐

  1. Linux下Nginx编译安装过程详解

    Linux下Nginx编译安装过程详解 一.Nginx介绍 二.Nginx源码下载 1.打开Nginx官网 2.下载官网的源码包 三.Nginx源码安装 1.解压源码包 2.安装开发包组及环境 3.编 ...

  2. linux运维中的中间件,linux中间件Nginx的安装过程

    下面一步一步走进中间件"Nginx"中间件的安装过程中 第一步下载nginx件,本站不提供下载哈,各位看官根据自己linux的版本号下载相对应的nginx中间件.,本站以<n ...

  3. CentOS7,linux下nginx的安装过程——1.安装pcre与nginx——源码

    [root@localhost ~]# whoami root [root@localhost ~]# cat/etc/redhat-release -bash: cat/etc/redhat-rel ...

  4. CentOS7,linux下nginx的安装过程——2.配置user,路径,openssl,make install,关闭防火墙,测试——源码

    源码中安装显示代码过多所以显示我操作的部分,IP用你们虚拟机的IP 1. [root@localhost nginx-1.6.3]# useradd www -s /sbin/nologin -M [ ...

  5. Linux下0号进程的前世(init_task进程)今生(idle进程)----Linux进程的管理与调度(五)【转】...

    前言 Linux下有3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd(PID = 2) idle进程由系统自动创建, 运行在内核态 idle进程其pi ...

  6. Linux中断与进程切换,结合中断上下文切换和进程上下文切换分析Linux内核的一般执行过程...

    @ 实验环境 OS Linux cj-virtual-machine 5.3.0-51-generic 虚拟机 QEMU 内核版本 5.3.4 调式方法 GDB PS:调试环境安装请看上一篇博客汇编级 ...

  7. linux kill nginx进程号,linux环境停止和启动nginx

    步骤1:查询nginx主进程号 ps -ef | grep nginx 在进程列表里 面找master进程,它的编号就是主进程号了. 步骤2:停止nginx 从容停止Nginx: kill -QUIT ...

  8. 记一次linux oom内存溢出排查过程

    一,背景 收到应用服务报警,然后登录上服务器查看原因,发现进程不再了. 二,问题分析 1,那么判断进程被干掉的原因如下: (1),机器重启了 通过uptime看机器并未重启 (2),程序有bug自动退 ...

  9. Linux中线程和进程的区别

    Linux中线程和进程的区别 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,它是系统进行资源分配和调度的一个独立单位.例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括 ...

最新文章

  1. 深入学习jQuery描述文本内容的3个方法
  2. SQL SERVER中ROLLUP的用法
  3. 在MAC平台下使用Eclipse出现了中文乱码
  4. MLIR(Multi-Level Intermediate Representation)概述
  5. python 读取文件_python读取docx文件,就是如此简单
  6. arm64 linux 除零正常返回,arm64程序调用规则
  7. ARM交叉编译工具arm-linux-gcc安装
  8. k2路由器刷华硕固件
  9. 2023年华南理工大学运筹学与控制论上岸前辈备考经验
  10. Nginx从入门到精通
  11. c语言运算符优先级(c语言运算符优先级由高到低的顺序)
  12. 【调用接口实现自动抠图】
  13. RS485通信和Modbus通信协议
  14. sap 新增科目表_在SAP中新建会计科目
  15. 非API接口限制介绍
  16. wingdings字体符号在哪_wingding、Wingdings2、wingdings3字体特殊符号和键盘字母相对应位置.doc...
  17. 如何让google colab不断连
  18. VMware 虚拟机网络配置
  19. matlab绘图操作之坐标轴范围设置
  20. 查看node在本地安装的全局依赖路径

热门文章

  1. Flume监听文件夹中的文件变化,并把文件下沉到hdfs
  2. 最小二乘法普通定义法证明
  3. 电机高频注入原理_永磁同步电机转子位置与速度估算的新方法,精度好,性价比高...
  4. dbnull和null_NULL和DBNull的区别分析
  5. 深入浅出设计模式原则之开闭原则(OCP)
  6. caffe随记(八)---使用caffe训练FCN的pascalcontext-fcn32s模型(pascal-context数据集)
  7. 六大赚钱定律,让你赚大钱
  8. OCP换题库了,052新加的考题及答案整理-第16题
  9. 快速排序--Python实现
  10. Node工程-构建优秀的Session机制