Question about Connection: close and proxy_pass
Dave Cheney
dave at cheney.net
Thu Sep 4 06:58:25 MSD 2008
Hi,
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:1.9.0.1)
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.
Cheers
Dave
More information about the nginx
mailing list