文章8:Nginx模块开发概述
一、Nginx模块概述 1.Nginx模块的三种角色 2.Nginx模块的处理流程
一、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处理完毕