此次我们先了解一些概念性东西首先我们要了解nginx涉及到的模块:
1、nginx涉及到的模块分为:核心模块、标准HTTP模块、可选http模块、邮件服务模块以及第三方模块等。
核心模块:
主要包含两大类支持。一类是主体功能,包括进程管理、权限管理、错误日志记录、配置解析等;
另一类用于响应请求事件必须的功能。包括事件驱动机制、正则表达式解析等。
标准HTTP模块:
对应的是基本HTTP服务。
了解Nginx服务器是如何处理Web请求的处理机制:
2、Web服务器完成并行处理请求工作有三种方式:多进程方式、多线程方式和异步方式。
1、多进程方式:
服务器每当接收到一个客户端时,就由服务器主进程生产一个子进程出来和该客户端建立连接进行交互,
直接连接断开,该子进程就结束了。
2、多线程方式:
和多进程方式类似,服务器每当接收到一个客户端时,就由服务器主进程派生一个线程出来和该客户端进行交互。
3、异步方式:
和多线程、多进程完全不同的一种处理客户端请求的方式。
同步机制:发送方方式请求后,需要等待接收方发回的响应后,才接着发送下一个请求;
异步机制:和同步相反,发送方发送一个请求后,不等待接收方响应这个请求,就继续发送下一个请求。
在同步机制中,所有请求在服务端得到同步,发送方和接收方对请求的处理步调一致;在异步机制中,
所有来自发送方的请求形成一个队列,接收方处理完成后通知发送方。
同步阻塞:发送方向接收方发送请求后,一直等待响应;接收方处理请求时进行io操作如果不能马上得到结果,
就一直等待返回结果 ,然后响应发送方,期间 不能进行其他工作。实现简单,效率不高。
同步非阻塞:发送方向接收方发送请求后,一直等待响应;接收方处理请求时进行io操作如果不能马上得到结果,
就立即返回,去做其他的事情,但由于没有得到结果,不响应发送方,发送方一直等待。一直到io操作完成,
接收方获得结果响应发送方,接收方既然下一次请求过程。
异步阻塞:发送方向接收方发送请求后,不用等待响应,可以继续做其他的工作;
接收方处理请求时进行io操作如果不能马上得到结果,就一直等待返回结果 ,然后响应发送方,期间不能进行其他工作。
异步非阻塞:发送方向接收方发送请求后,不用等待响应,可以继续做其他的工作;
接收方处理请求时进行io操作如果不能马上得到结果,就立即返回,去做其他的事情。
当io完成以后,将完成装态和结果通知接收方,接收方再响应发送方。这种方式是发送方和接收方通信效率最高的一种。
3、了解Nginx服务器的事件驱动模型
事件驱动模型是nginx服务器保证完整功能和良好性能的重要机制之一。
事件驱动模型由事件收集器、事件发送器和事件处理器三部分基本单元组成。
事件驱动处理库又为io复用方法,最常见的包括三种:select库、poll库、epoll库、rtsig库。
4、nginx服务器架构
Nginx服务器启动后,产生一个主进程,主进程执行一系列的工作后产生一个或多个工作进程。
主进程主要进行nginx配置文件的解析、数据结构初始化、模块配置和注册、信号处理、网络监听生产、工作进程生产和管理。
工作进程主要进行进程初始化、模块调用和请求处理等工作,是nginx服务器提供服务的主体。
客户端请求动态站点的过程中,nginx服务器还涉及和后端服务器的通信。
Nginx服务器将接受到的web请求通过代理转发到后端服务器,由后端服务器进行数据处理和页面组织,
然后将结果返回。此外,nginx还采用了缓存机制,进一步降低网络压力。
Nginx服务器分为:主进程、工作进程、后端服务器、缓存等。
以上资料纯属个人学习使用,不做其他用途。
参考资料:nginx高性能web服务器详解 苗泽