Question about Connection: close and proxy_pass
tarkasteve at gmail.com
Fri Sep 5 07:24:12 MSD 2008
Unfortunately the WANdisco upgrade didn't help, I'm still seeing the
same behavior. It would be nice to have a nginx fix; I'm now using
pound to front this system.
On Thu, Sep 4, 2008 at 4:56 PM, Steve Smith <tarkasteve at gmail.com> wrote:
> WANdisco have owned up to the close issue from their end, the latest
> version apparently has a fix, although I haven't managed to try it
> On Thu, Sep 4, 2008 at 3:57 PM, Igor Sysoev <is at rambler-co.ru> wrote:
>> On Wed, Sep 03, 2008 at 10:58:25PM -0400, Dave Cheney wrote:
>>> We're using nginx to proxy between a piece of software that doesn't
>>> understand our SSL certificate. The diagram looks like this
>>> client --> port:443 --> nginx --> port:8181 --> WANDisco
>>> What we are seeing is nginx is forwarding the request to WANDisco on port
>>> 8181 with a Connection: close header (as expected). The response is coming
>>> back from WANDisco with a Connection: close header also, see below for the
>>> abridged version
>>> nginx -> wandisco
>>> GET /svn/private/ HTTP/1.0
>>> Host: 127.0.0.1:8181
>>> Connection: close
>>> User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:126.96.36.199)
>>> Gecko/2008072820 Firefox/3.0.1
>>> wandisco -> nginx
>>> HTTP/1.1 200 OK
>>> Date: Thu, 04 Sep 2008 02:14:05 GMT
>>> Server: Apache/2.2.9 (Debian) DAV/2 SVN/1.4.2 mod_ssl/2.2.9 OpenSSL/0.9.8g
>>> mod_perl/2.0.4 Perl/v5.10.0
>>> Last-Modified: Thu, 04 Sep 2008 01:46:09 GMT
>>> ETag: W/"66230//"
>>> Accept-Ranges: bytes
>>> Content-Length: 439
>>> Connection: close
>>> Content-Type: text/html; charset=UTF-8
>>> [body skipped]
>>> So the response has a content length and Connection: close. However nginx
>>> does not consider the response 'done', until wandisco has closed its side
>>> of the socket.
>>> My reading of RFC 2616 is unclear. Section 14.10
>>> (http://tools.ietf.org/html/rfc2616#section-14.10) says
>>> "HTTP/1.1 defines the "close" connection option for the sender to
>>> signal that the connection will be closed after completion of the
>>> response. For example"
>>> Which appears to indicate that the sender will close the connection, but
>>> does not use RFC 2119 grammer to indicate that it must.
>>> My question is, is this a bug? Should nginx close its side of the
>>> connection onces it has read Content-Length: bytes, or should WANDisco
>>> close its side after sending the response.
>> I think these are bugs on both side:
>> 1) nginx should send response after it gets CL bytes,
>> 2) while WANDisco should close a connection after it has sent whole response,
>> if it has said that "Connection: close".
>> Igor Sysoev
More information about the nginx