通俗易懂的Nginx工作原理( 二 )


  1. 其他优点
 
(1)请求的统一控制,包括设置权限、过滤规则等;
(2)区分动态和静态可缓存内容;
(3)实现负载均衡,内部可以采用多台服务器来组成服务器集群,外部还是可以采用一个地址访问;
(4)解决Ajax跨域问题;
(5)作为真实服务器的缓冲,解决瞬间负载量大的问题;
Nginx有五大优点:模块化、事件驱动、异步、非阻塞、多进程单线程 。由内核和模块组成的,其中内核完成的工作比较简单,仅仅通过查找配置文件将客户端请求映射到一个location block,然后又将这个location block中所配置的每个指令将会启动不同的模块去完成相应的工作 。
2 Nginx模块
2.1 模块划分
Nginx的模块从结构上分为核心模块、基础模块和第三方模块:
核心模块:HTTP模块、EVENT模块和MAIL模块基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块,第三方模块:HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块 。Nginx的模块从功能上分为如下四类:
Core(核心模块):构建nginx基础服务、管理其他模块 。Handlers(处理器模块):此类模块直接处理请求,并进行输出内容和修改headers信息等操作 。Filters (过滤器模块):此类模块主要对其他处理器模块输出的内容进行修改操作,最后由Nginx输出 。Proxies (代理类模块):此类模块是Nginx的HTTP Upstream之类的模块,这些模块主要与后端一些服务比如FastCGI等进行交互,实现服务代理和负载均衡等功能 。Nginx的核心模块主要负责建立nginx服务模型、管理网络层和应用层协议、以及启动针对特定应用的一系列候选模块 。其他模块负责分配给web服务器的实际工作:
(1) 当Nginx发送文件或者转发请求到其他服务器,由Handlers(处理模块)或Proxies(代理类模块)提供服务;(2) 当需要Nginx把输出压缩或者在服务端加一些东西,由Filters(过滤模块)提供服务 。 
2.2 模块处理
  1. 当服务器启动,


    推荐阅读