1.Nginx HTTP框架综述
hander:直接处理客户端的请求,产生响应,是最常用的模块//请求处理
filter: 对hander产生的数据各种加工过滤处理//请求处理
upstream: 实现反向代理功能,转发请求到上游的服务器,从后端获取响应载发回客户端//请求转发
load-balance:不直接处理数据,而是现象负载均衡算法,从upstream的配置里选择一个合适的上游服务器//请求转发
开发:请求处理 配置信息类,业务逻辑类,模块集成类
请求结构体
请求转发机制:实现了九个回调函数 初始化 设置连接参数,启动连接,处理数据
负载均衡机制:轮询、ip散列、一致性散列
ngx_http_upstream_module
2 Nginx HTTP子请求
之前只能处理单一的请求,只能完成一件任务。子请求机制能够把服务器里的location变成一个个函数调用,使用子请求可以组合这些拉擦体内,完成复杂的业务逻辑。设计思想是分而治之。
3 Nginx有特殊的变量机制,核心是两个结构体
4 Nginx 进程机制 使用onemaster、multiworks的进程模式运行,一个负责管理监控,worker负责对外网络服务,不仅充分利用了CPU,也很好保证了服务的稳定。
5 Nginx 事件机制 可以理解为一种通知机制
基本系统调用
socket 系统调用
epoll 系统调用
Nginx用代表事件,连接,监听端口,数据收发接口和事件处理接口,并在ngx_cycle_t里整合了连接池,事件池和监听端口数组,构成了Nginx事件机制的运行基础。
Nginx 多线程机制,基于linux专有的系统调用eventfd(),它创建一个特殊的虚文件描述符,可以被epoll监控,没有它就无法实现多线程与事件机制的结合。
Nginx stream机制,支持限速,访问控制,反向代理,ssl等常用的功能,灵活组合现有的模块可以搭建出一个完善的TCP/IP服务器。处理原始的字节流