6.4.4 初始化HTTP过滤模块

在定义ngx_http_myfilter_init方法时,首先需要定义静态指针ngx_http_next_header_filter,用于指向下一个过滤模块的HTTP头部处理方法,然后要定义静态指针ngx_http_next_body_filter,用于指向下一个过滤模块的HTTP包体处理方法,代码如下所示。


static ngx_http_output_header_filter_pt ngx_http_next_header_filter;

static ngx_http_output_body_filter_pt ngx_http_next_body_filter;

static ngx_int_t ngx_http_myfilter_init(ngx_conf_t*cf)

{

//插入到头部处理方法链表的首部

ngx_http_next_header_filter=ngx_http_top_header_filter;

ngx_http_top_header_filter=ngx_http_myfilter_header_filter;

//插入到包体处理方法链表的首部

ngx_http_next_body_filter=ngx_http_top_body_filter;

ngx_http_top_body_filter=ngx_http_myfilter_body_filter;

return NGX_OK;

}