hel*_*yan 6 gzip module nginx handler
我写了一个非常简单的nginx处理程序,只输出一些文本(大小100B到10KB).
代码适用于nginx(版本1.0.6)
但我发现gzip过滤器无法与处理程序一起使用.
当我在nginx.conf(在http部分下)打开gzip时,gzip使用静态html文件工作.
但是,处理程序的响应不是用gzip压缩的.
经过大量的搜索工作,我仍然找不到答案.
任何意见 ?非常感谢.:-)
//my code :
static ngx_int_t ngx_http_test_handler(ngx_http_request_t *r){
ngx_chain_t out;
ngx_buf_t *b;
b = ngx_pcalloc(r->pool, sizeof(ngx_buf_t));
......
//writing text to buffer
......
r->headers_out.status = NGX_HTTP_OK;
r->headers_out.content_length_n = len;
r->headers_out.content_type.len = sizeof("text/html")-1;
r->headers_out.content_type.data = (u_char *) "text/html";
out.buf = b;
out.next = NULL;
return ngx_http_output_filter(r, &out);
}
Run Code Online (Sandbox Code Playgroud)
首先你的电话打到哪里ngx_http_send_header(r);?
您正在初始化 的成员吗 ngx_buf_t *b?
您的请求内容编码设置了吗?
您的处理程序会产生错误吗?如果是这样,不会调用任何过滤器?
为了确保 gzip 过滤器在被处理程序调用时运行(而不是被绕过),需要满足其他约束,包括
有关 Nginx 模块、Fillter 和 Handler 开发的更多信息,请参阅此处。