Nginx由内核和模块组成
内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block,而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作
Nginx的功能如此强大,就是因为它有非常多的模块来支撑,Nginx本身包含很多模块,用户也可以根据自己的需求开发模块
从结构上模块分为:
(1)核心模块
例如 HTTP模块、EVENT模块和MAIL模块等
(2)基础模块
例如 HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块
(3)第三方模块
例如 HTTP Upstream RequestHash模块、Notice模块和HTTP Access Key模块、用户自定义模块
从功能上模块分为:
(1)Handlers(处理器模块)
直接处理请求,并进行输出内容和修改headers信息等操作,Handlers处理器模块一般只有一个
(2)Filters(过滤器模块)
主要对其他处理器模块输出的内容进行修改操作,最后由Nginx输出
(3)Proxies(代理类模块)
此类模块是Nginx的HTTP Up-stream之类的模块,主要与后端一些服务比如FastCGI等进行交互,实现服务代理和负载均衡等功能
Nginx模块的HTTP请求和响应过程