nginx是模块化设计:

    模块大致可以分为:

              1.核心模块(core)

              2.基础模块(http,mail)

              3.第三方模块(upstream,proxy,fastcgi)

   功能:1.核心模块为nginx作为webserver,web or mail proxy提供一个大的基础

       2.基础模块是核心模块与扩展模块的抽象衔接,同时完成某协议的功能

       3.第三方模块,在对应基础模块的基础上,完成特定功能


nginx架构:

   2.nginx架构及工作流程_第1张图片

nginx对于一个http请求的处理流程:

   1.tcp/ip连接建立

   2.woerker进程接受请求,按配置文件(主要是location)触发不同的hander和filter

   按pipeline流程处理

   3.第一个hander处理,结果放置在内存某处

   4.第二个hander读取结果,继续处理(hander可以理解为upstream这些模块)

   ......

   5.filter处理hander处理之后的内容,对报文主体和头部进行相应的操作(比如gzip)

   ......

   6.构建响应发送

2.nginx架构及工作流程_第2张图片

nginx的进程类型:

   master进程

   worker进程

   cache loader

   cache manager


nginx进程的作用:

   master:1.读取配置文件

        2.创建,绑定,销毁套接字文件

        3.启动,终止,维护worker进程数量

        4.平滑升级,日志滚动

   worker:接收处理请求

   cache manager:缓存的失效清理和过期检验

   cache loader:检查缓存对象

            使用缓存元数据建立内存数据库