Nginx 简述

I/O 模型
同步/异步:关注的是消息通信机制
同步:synchronous 调用者等待被调用者返回信息,再继续执行后续操作
异步:asynchronous 被调用者通过状态、通知或回调机制主动通知调用者被调用者的状态

阻塞/非阻塞模型
阻塞:blocking  IO操作需要彻底完成后才回到用户空间,调用结果返回前,调用者被挂起
非阻塞:noblocking  IO操作被调用后立即给用户返回一个状态值,无需等待IO彻底完成,最终的调用结果返回前,调用者不挂起
(非阻塞型并不直接使用,程序虽然没有挂起,但是会不断发起IO请求等待答复,消耗大量CPU资源。一般在其他模型中使用)

IO多路复用型
有等待机制作(select)为中间调和,负责接收请求,并不直接请求内核。本质上也是阻塞特征,阻塞点在等待机制select
使用场景:
客户端处理多个描述符是(一般为交互输入和网络套接口)
一个TCP服务器既要已连接套接字又要监听套接字
一个服务器要处理TCP、UDP
一个服务器要处理多个服务或协议

具体实现:
select:linux实现,对应IO复用模型
poll:linux实现,对应IO复用模型
epoll:linux实现,对应IO复用模型,具有信号驱动IO某些特征
kqueue: FreeBSD实现,IO复用,有信号驱动IO特性
/dev/poll: SUN的Solaris实现
Iocp:Windows实现,对应异步模型

中间等待机制   select   poll    epoll的异同
                                 poll                             epoll                                         select
操作方式        遍历(逐一查寻)                 回调                                          遍历
底层实现                 链表                            哈希表                                        数组
IO效率           调用使用先性遍历         事件通知,fd就绪时,系统注册       同poll
                      时间复杂度O(n)             回调函数,被调用将fd放入rdllist
最大连接数             无上限                          无上限                              1024(x86),2048(x64)
fd拷贝            用户态拷贝到内核态      调用epoll_ctl时拷贝,之后                同poll
                                                             每次epoll_wait不拷贝

select:可跨越平台,通过设置或检查存放fd标志位的数据结构进行下一步的处理
缺点:单个进程可监视的fd数量被限制        cat   /proc/sys/fs/file-max
对socket线性扫描即轮询方法,效率低
fd拷贝凡是会使用用户空间和内核空间,传递fd结构时复制开销大

poll:与select无特别差异,水平触发(LT,报告fd后,没有处理,下次poll会再次报告,select相同)

epoll:边缘触发(ET,通知一次)和LT

nginx的特性
模块化、高可靠性、支持热部署(不停机升级版本)、第内存消耗

基本功能
静态资源的web服务器
http反向代理服务器
pop3/imap4 反向代理服务器
FastCGI(LNMP)、uWSGI、python等协议客户端

程序架构
master/worker
一个master进程:负责加载和分析配置文件,管理worker进程,平滑升级
一个或多个worker进程:处理并响应用户请求
缓存相关的进程
cache  loader  载入缓存对象
cache  manager  管理缓存对象

模块分类
核心模块:core  module
标准模块:HTTP模块  ngx_http_* 、HTTP  Core   modules   默认功能、HTTP  Optional  modules  编译指定
Mail  模块   ngx_mail_*
Stream 模块  ngx_stream_*  (TCP代理) 
第三方模块
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值