nginx是模块化设计:
模块大致可以分为:
1.核心模块(core)
2.基础模块(http,mail)
3.第三方模块(upstream,proxy,fastcgi)
功能:1.核心模块为nginx作为webserver,web or mail proxy提供一个大的基础
2.基础模块是核心模块与扩展模块的抽象衔接,同时完成某协议的功能
3.第三方模块,在对应基础模块的基础上,完成特定功能
nginx架构:
nginx对于一个http请求的处理流程:
1.tcp/ip连接建立
2.woerker进程接受请求,按配置文件(主要是location)触发不同的hander和filter
按pipeline流程处理
3.第一个hander处理,结果放置在内存某处
4.第二个hander读取结果,继续处理(hander可以理解为upstream这些模块)
......
5.filter处理hander处理之后的内容,对报文主体和头部进行相应的操作(比如gzip)
......
6.构建响应发送
nginx的进程类型:
master进程
worker进程
cache loader
cache manager
nginx进程的作用:
master:1.读取配置文件
2.创建,绑定,销毁套接字文件
3.启动,终止,维护worker进程数量
4.平滑升级,日志滚动
worker:接收处理请求
cache manager:缓存的失效清理和过期检验
cache loader:检查缓存对象
使用缓存元数据建立内存数据库