nginx-学习笔记5
handler模块 基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-balancer。Handler模块就是接受来自客户端的请求并产生输出的模块。有些地方说upstream模块实际上也是一种handler模块,只不过它产生的内容来自于从后端服务器获取的,而非在本机产生的。 如果有多个handler模块都关联了同一个location,那么实际上只有一个handler模块真正会起作用。 handler模块处理的结果通常有三种情况: 处理成功,处理失败(处理的时候发生了错误)或者是拒绝去处理。在拒绝处理的情况下,这个location的处理就会由默认的handler模块来进行处理。 模块的基本结构 Nginx的配置信息分成了几个作用域(scope,有时也称作上下文),这就是main, server, 以及location。 例: typedef struct { ngx_str_t hello_string; ngx_int_t hello_counter; }ngx_http_hello_loc_conf_t; 一个模块的配置指令是定义在一个静态数组中的。以hello module为例: static ngx_command_t ngx_http_hello_commands[] = { { ngx_string("hello_string