Ok ,you are right . in this situation, the nginx must read all client request body, BUT the next step must be handled will not continue.
So , I backup the write_event_handler to the write_event_handler_back and when nginx read all request body I restore the handler. like this: write_event_handler = write_event_handler_back; By changing to this,the next strp can continue. It's a BUG for nginx? 2015-04-16 21:42 GMT+08:00 Maxim Dounin <[email protected]>: > Hello! > > On Thu, Apr 16, 2015 at 06:02:16PM +0800, cruze guo wrote: > > [...] > >> but ,the (struct ngx_http_request_s) 's write_event_handler will be >> set to ngx_http_request_empty_handler. >> >> in ngx_http_request_body.c >> function ngx_http_read_client_request_body >> r->write_event_handler = ngx_http_request_empty_handler; >> >> It mean nothing will handle the next step,when you read all client >> request body!! > > Write event handler is used to handle write events, and there is no need > to set it unless nginx is writing something. While nginx is reading > a request body, it only needs read event handler to process new data > from a client. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx _______________________________________________ nginx mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx
