Nginx 基础知识

学习前必须理解的概念

linux下的I/O模型

I/O模型就是处理请求I/O读写的方式(一切皆文件),比如我们访问网页所有的请求过程内部是怎么实现的

1、等待数据准备,数据会先被拷贝到操作系统内核的缓冲区中(内存中)
2、将数据从内核拷贝到进程中,内核态到用户态转换

正是因为这两个阶段,linux系统产生了五种网络模式的方案
在这里插入图片描述

主要结合3点I/O模型

  • 异步和异步
  • 阻塞和非阻塞
  • I/O 多路复用

异步和异步

重点在消息通知的方式的行为,也就是调用结果的通知方式不同

  • 同步:当一个同步调用发出去后,调用者要一直等待调用的结果通知后,才能进行后续的执行。
  • 异步:当一个异步调用发出去后,调用者不必一直等待调用结果的返回,异步调用,要想获得结果
    一般有两种方式:
    1、主动轮询异步调用的结果;
    2、被调用方通过callback(回调通知)来通知调用方调用结果

同步取快递:收到短信后,就去通知点等着快递到
异步取快递:收到短信后,快递已经到达后再去取
1、快递着急使用,几分钟我就给快递小哥打一个电话问下到了没有
2、不着急等着快递小哥到了,打我电话我再去拿

阻塞和非阻塞

重点在于进/线程等待消息时候的行为,也就是在等待消息的时候,当前进/线程是阻塞状态,还是非阻塞状态

等着快递来的时候我是否还能做点其他事情呢

  • 阻塞:调用在发出去后,在消息返回之前,当前进/线程会被挂起,直到有消息返回,当前进/线程才会被激活
  • 非阻塞:调用在发出去后,不会阻塞当前进/线程,而会立即返回

阻塞取快递:我啥事情不做,就等着快递来
非阻塞取快递:我一边玩游戏一边等快递来

组合方式

  • 同步阻塞:收到信息后,啥都不干,去指定点等快递
  • 同步非阻塞:收到信息后,边玩游戏,去指定点等着取快递
  • 异步阻塞:收到信息后,啥都不干,等着快递员通知取快递
  • 异步非阻塞:收到信息后,边玩游戏,等快递员通知取快递

apahe基于同步阻塞
nginx基于异步非阻塞

I/O 多路复用

让单个process可以同时处理多个网络连接的IO,也就是解决我一边玩游戏还能一边确保收到快递,还能做其他事情

底层是同步调用,上层逻辑是异步调用
数据拷贝是同步的,数据准备前是异步的

epoll

当连接有I/O事件产生的时候,epoll就会去告诉进程哪个连接有I/O事件产生,然后进程就去处理这个事件,epoll事件驱动模型是实现异步非阻塞的一个手段(设置一个中间件来统一管理进程,避免进程出现闲置)

快递柜取快递:收到短信后,快递先放到了快递柜中,然后我再去取快递,有可能立即就去,也可能很晚再去拿,就是等我闲置了时候,这样我就可以按照顺序做事,提高了效率

在这里插入图片描述

Nginx图解
在这里插入图片描述

  • Nginx主进程会创建worker进程进行处理,Ngnix主进程只是作为管理暴露到外部,实际干事的是worker进程(默认个数是CPU的内核数,我是虚拟机2个内核)

在这里插入图片描述

  • 每个子进程会进行进程初始化,模块调用以及对事件的接收和处理等工作

学习网页:https://blog.51cto.com/jacksoner/2315700?source=dra
学习网页:https://juejin.im/post/6844903687626686472#heading-5
学习视频:链接:https://pan.baidu.com/s/1SuhPdbdQbexsDMKKmvyUaQ 提取码:ptm8

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值