Nginx 工作原理
Nginx 由内核和一系列模块组成:内核提供 web 服务的基本功能,如启用网络协议、创建运行环境、接收和分配客户
端请求、处理模块之间的交互。模块实现 Nginx 的各种功能和操作,Nginx 的模块从结构上分为核心模块、基础模块
和第三方模块。
- 核心模块: HTTP 模块、EVENT 模块和 MAIL 模块
- 基础模块: HTTP Access 模块、HTTP FastCGI 模块、HTTP Proxy 模块和 HTTP Rewrite 模块
- 第三方模块: HTTP Upstream Request Hash 模块、Notice 模块和 HTTP Access Key 模块及用户自己开发的模块
这样的设计使 Nginx 方便开发和扩展,也正因此才使得 Nginx 功能如此强大。Nginx 的模块默认编译进 Nginx 中,如果需要增加或删除模块,需要重新编译 Nginx,这一点不如 Apache 的动态加载模块方便。如果有需要动态加载模块,可以使用由淘宝网发起的 Web 服务器 Tengine,在 Nginx 的基础上增加了很多高级特性,完全兼容 Nginx,已被国内很多网站采用。