proxy_pass defaulting to http 1.0

Maxim Dounin mdounin at
Sun Jun 16 01:48:17 UTC 2013


On Fri, Jun 14, 2013 at 04:54:26PM +0200, Tu Tr wrote:

> Since proxy_pass by default uses HTTP 1.0 shouldn't it also clear the
> Connection header by default?

By default, nginx uses "Connection: close" in upstream requests 
for maximum compatibility with various backend servers.

> This causes major problems for the unsuspecting reverse proxy that
> encounters a .NET request. WebClient automatically
> sends Connection: keep-alive even for a HTTP 1.1 request. Some calls to
> WebClient#downloadFile will apparently chew up a connection in the
> underlying .NET connection pool, and then WebClient will hang waiting
> for a connection to free up without issuing the HTTP GET request.
> The fix was to do
>     proxy_set_header Connection ""
> For some reason "proxy_http_version 1.1" by itself didn't do anything to
> prevent the random WebClient hangs.

>From your description it isn't clear what goes wrong and what 
fixes the problem.  You may want to investigate further.

Maxim Dounin

More information about the nginx mailing list