Chunked transfer encoding problem

Maxim Dounin mdounin at mdounin.ru
Wed Nov 14 17:07:35 UTC 2012


Hello!

On Wed, Nov 14, 2012 at 05:42:49PM +0100, Piotr Bartosiewicz wrote:

> Hi,
> 
> My nginx (1.2.4) config looks like this (relevant part):
> 
> server {
>   listen 8888;
> 
>   location / {
>     proxy_http_version 1.1;
>     proxy_pass http://localhost:8080;
>   }
> }
> 
> Backend server handles GET requests and responds with a large body.
> Response is generated and sent on the fly, so content-length is not
> known at the beginning.
> In normal case everything works fine.
> 
> But sometimes server catches an exception after a response headers
> were sent.
> I've found that there is a commonly used solution to inform a client
> about incomplite response:
> use Transfer-Encoding chunked and close socket without sending the
> last (0 length) chunk.
> Unfortunately nginx appends termination chunk even when the backend
> server does not
> (both nginx and backed connections are http/1.1 and use chunked encoding).
> 
> Is this expected behavior, bug or maybe there is some option to turn
> this off?

This is sort of known bug.  Fixing it would require relatively 
large cleanup of upstream module.

-- 
Maxim Dounin
http://nginx.com/support.html



More information about the nginx mailing list