非常に単純なnginxハンドラを書きましたが、何らかのテキスト(サイズ100B〜10KB)を出力しました。私のカスタムハンドラではNginx gzipフィルタが動作しません
コードは(1.0.6のver)nginxので正常に動作する
が、私は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);
}