一、Nginx模块概述
1.Nginx模块的三种角色
2.Nginx模块的处理流程
|
1.Nginx模块的三种角色
1)Handlers 处理模块:处理Http请求,并输出内容
2)Filters过滤模块:用于过滤Handler的输出内容
3)Load-balancers(负载均衡模块):当有多于一台的后端服务器供选择时,选择一台后端服务器,并将HTTP请求转发到该服务器。
2.Nginx模块的处理流程
---客户端发送HTTP请求到Nginx服务器--Nginx基于配置文件中的位置,选择一个合适的处理模块---负载均衡模块,选择一台后端服务器(反向代理情况下)---
处理模块Handlers进行处理,并把输出缓冲放到第一个过滤模块上---第二个过滤模块---第N个过滤模块----最后把处理结果发送给客户端。
举例:根据添加的HelloWorld模块,进行说明
---客户端发送HTTP请求到Nginx服务器
(http://localhost/hello) |
--Nginx基于配置文件中的位置,选择一个合适的处理模块
配置文件为Nginx.conf,hello在配置文件的位置如下所示 location /hello{ hello_world; } Nginx基于配置文件的文件中的位置,选择一个合适的处理模块。即ngx_http_hello_world_module。 |
---负载均衡模块,选择一台后端服务器(反向代理情况下)
注意:helloworld模块中,没有牵涉到负载均衡模块 |
---处理模块Handlers进行处理,并把输出缓冲放到第一个过滤模块上
ngx_http_hello_world函数根据指令hello_world所在的位置,调用相对应的处理函数ngx_http_hello_world_handlers
注意:在helloworld中没有牵涉过滤模块
|
---第二个过滤模块---第N个过滤模块
----最后把处理结果发送给客户端。
应该是在ngx_http_hello_world_handlers处理完毕 |