ngx_http_output_filter

【Linux网络编程】Nginx -- 模块开发(HTTP 过滤模块)

Nginx filter分析

Nginx-HTTP之ngx_http_top_header_filter

过滤模块如何链接起来的

Nginx filter 模块解析 

头插法与静态全局变量​​​​​​​ 

ngx_int_t ngx_http_output_filter(ngx_http_request_t *r, ngx_chain_t *chain);
ngx_int_t ngx_http_output_filter(ngx_http_request_t *r, ngx_chain_t *in)
{
    ngx_int_t          rc;
    ngx_connection_t  *c;

    c = r->connection;

    ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
                   "http output filter \"%V?%V\"", &r->uri, &r->args);

    rc = ngx_http_top_body_filter(r, in);

    if (rc == NGX_ERROR) {
        /* NGX_ERROR may be returned by any filter */
        c->error = 1;
    }

    return rc;
}
typedef ngx_int_t (*ngx_http_output_body_filter_pt) (ngx_http_request_t *r, ngx_chain_t *chain);
ngx_http_output_body_filter_pt    ngx_http_top_body_filter;

ngx_http_top_body_filter = ngx_http_copy_filter;
ngx_http_top_body_filter = ngx_http_postpone_filter;
ngx_http_top_body_filter = ngx_http_write_filter;
ngx_http_top_body_filter = ngx_http_addition_body_filter;
...
ngx_http_top_body_filter = ngx_http_sub_body_filter;
...
自定义的:
ngx_http_top_body_filter = ngx_http_subs_body_filter;

 ngx_http_output_filter--->ngx_http_subs_body_filter-->

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值