我试图在将请求正文数据发送到后端服务器之前对其进行压缩。 为了实现这一点,我将我的模块添加到官方nginx,我的模块有一个重写阶段处理程序, 我希望它重写请求体,代码显示如下:
static ngx_int_t
ngx_http_leap_init(ngx_conf_t *cf)
{
ngx_http_handler_pt *h;
ngx_http_core_main_conf_t *cmcf;
cmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_core_module);
h = ngx_array_push(&cmcf->phases[NGX_HTTP_REWRITE_PHASE].handlers);
if (h == NULL)
return NGX_ERROR;
*h = ngx_http_leap_rewrite_handler;
return NGX_OK;
}
在ngx_http_leap_rewrite_handler方法中,我有以下几行:
rc = ngx_http_read_client_request_body(r, ngx_http_leap_request_body_read);
当使用application / x-www-form-urlencoded而不是multipart / form-data发布数据时,ngx_http_leap_request_body_read处理程序能够压缩请求正文。 因为我真正想做的是压缩帖子文件,而不是帖子行, 有什么想法吗?