Nginx gzip фильтр не работает с моим пользовательским обработчиком

Я написал очень простой обработчик nginx, просто выводим некоторый текст (размер от 100B до 10KB).

код работает правильно с nginx (ver 1.0.6)

но я обнаружил, что gzip фильтр не может работать с обработчиком.

когда я включаю gzip в nginx.conf (в разделе http), 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);
}
6
задан helloryan 8 December 2011 в 07:19
поделиться