1、Nginx模块的3种角色:
(1) Handler处理请求模块--处理http请求并输出内容;
(2)Filter过滤模块----用于过滤Handler输出的内容;
(3)Load-balance(负载均衡模块)
编写一个Nginx模块,配置Nginx.conf包括4个主要部分:
(1)main(全局)部分
(2)server(虚拟主机配置)
(3)upstream(反向代理部分)
(4)location(目录匹配部分)
Nginx模块的处理流程:客户端发送HTTP请求到Nginx服务器---->Nginx基于配置文件中的位置选择一个合适的处理模块---->负载均衡模块选择一台后端服务器(反向代理情况下)-->处理模块进行处理并把输出缓冲放到第一个过滤模块上--->第一个过滤模块处理后输出第二个过滤模块---->然后第二个过滤模块又到第三个过滤模块--->第N个过滤模块---->最后把处理结果发送给客户端。
2、Nginx的缓存
Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi相关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存。
(1)proxy_cache指令
(2)proxy_cache_path指令
(3)proxy_cache_methods指令
(4)proxy_cache_min_uses指令
(5)proxy_cache_valid指令
(6)proxy_cache_key指令