Possible HTTP response read bug in Nginx 1.0.12

Maxim Dounin mdounin at mdounin.ru
Tue Apr 3 16:15:30 UTC 2012


Hello!

On Tue, Apr 03, 2012 at 07:07:04AM -0400, tikonen wrote:

> Hi,
> 
> I've nginx server setup that terminates SSL connections from clients and
> forwards plain HTTP requests to backend servers. Some of these requests
> can last pretty long (up to 1 minute) and usually get very short 15 byte
> reply. (Ajax polling)
> 
> However, we see often these kind of errors that indicate that backend
> servers would have disconnected socket while writing reply.
> 
> 2012/03/03 06:46:38 [error] 13394#0: *2100 upstream prematurely closed
> connection while reading response header from upstream, client:
> XX.XX.XX.XX, server: secure.example.com, request: "GET
> /url/example?par=12345 HTTP/1.1", upstream:
> "http://127.0.0.1:8082/url/example?par=12345", host:
> "secure.example.com", referrer: "https://secure.example.com/"
> 
> Strangely I can see correponding 200 OK responses from our server logs
> at the same timestamp, so at least backend server is trying to respond
> correctly. 
> Then we captured the traffic between nginx and backend server with
> wireshark and noticed that when this happens the response from server is
> actually sent in two TCP packets.
> 
> The first packet has headers and the second packet has small 15 byte
> HTTP body. I suspect that nginx fails to read the second packet in some
> conditions and thinks backend server disconnected prematurely.
> 
> Any insights? Thanks!

Please try 1.1.x to see if this is already resolved.  If not, 
please provide traffic capture and corresponding debug log, see
http://wiki.nginx.org/Debugging

Maxim Dounin



More information about the nginx mailing list