nginx架构(一)

nginx是一个事件驱动框架[网络事件], 每个连接对应两个事件(读事件和写事件),来看看nginx处理请求的流程

请求网络传输流程

以太网->路由器的链路层->路由器的网络层(记录运营商ip)
链路层->网络层
请求
客户端应用层(发送get请求)
客户端传输层(记录nginx打开的端口)
客户端网络层(记录客户端ip与服务端ip)
客户端链路层
客户端物理层
广域网
服务端以太网
服务端链路层
服务端网络层
服务端传输层(操作系统根据记录的端口分配到进程)
服务端应用层(nginx状态处理机处理请求)

TCP流与报文

tcp/ip协议层级

应用层 (HTTP,SMTP,POP3,IMAP,SSH,DNS)
传输层 {源、目的,端口(TCP,UDP)}
网络层 {源、目的IP地址(IP,ICMP,DHCP,ARP)}
数据链路层 {源、目的MAC地址(Ethernet)}

TCP协议与非阻塞接口

读事件

  • Accept建立连接
  • Read读消息

写事件

  • Write写事件
1
2
3
4
5
1
2
3
4
5
由以上事件触发定时器到期事件
事件收集、分发者
请求建立tcp连接事件
tcp连接可读事件
tcp连接关闭事件
tcp连接可写事件
异步读磁盘成功事件
连接建立事件消费者
读事件消费者
写事件消费者
连接关闭事件消费者
异步读磁盘事件消费者
定时器事件消费者

nginx事件循环

添加事件
获取事件
有生成新的事件时,可添加到队列
操作系统内核
事件队列
等待客户端连接事件
接收队列事件,如:[建立连接,tcp请求报文,...]
处理事件的循环
处理事件的循环
如果需要生成新的事件
处理完成
事件队列是否为空
从队列取出事件
处理事件
添加新事件, 如:[定时关闭连接,写事件,...]
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值