Broken pipe while sending request to upstream
mdounin at mdounin.ru
Tue Sep 17 15:39:31 UTC 2013
On Tue, Sep 17, 2013 at 11:11:05AM -0400, Claudio wrote:
> I've set up nginx as a proxy for a jetty service. Works nicely, most of the
> time, except
> ... when issuing a (somewhat) larger POST request to some entity which is
> protected by HTTP Basic access authentication.
> The web app responds with a 401 immediately, probably closing the connection
> right away:
> 127.0.0.1 - - [17/Sep/2013:14:17:38 +0000] "POST /scm/blub?cmd=unbundle
> HTTP/1.0" 401 1412
> But nginx gratuitously insists on sending all the data, which fails
> 2013/09/17 16:17:38 [error] 22873#0: *1 writev() failed (32: Broken pipe)
> while sending request to upstream, client: 192.168.2.8, server: test.int,
> request: "POST /scm/blub?cmd=unbundle HTTP/1.1", upstream:
> "http://127.0.0.1:8082/scm/blub?cmd=unbundle", host: "test.int"
> I also tried different config options like enabling sendfile, increasing
> buffer and timeout sizes, but it didn't help.
> Is there some way to make this work? Is this a bug?
As long as a connection is closed before nginx is able to get a
response - it looks like a problem in your backend. Normally such
connections need lingering close to make sure a client has a chance
to read a response.
More information about the nginx