Sorry, forgot to mention what version I was using. This was with haproxy 1.4.2. I just tried with 1.4.3 and the problem remains.
Thanks, Patrik On Tue, Mar 30, 2010 at 11:51 AM, Patrik Nilsson <[email protected]> wrote: > Hi, > > We have been trying to get the new keep-alive functionality, with the > http-server-close option, to work with our Jetty back-end web servers. > There seems to be something in the response from the Jetty servers > that makes HaProxy always add a Connection: close header in the > response to the client though. > > Running the same HaProxy configuration with an Apache backend works fine. > > I've included examples below showing the requests and responses when > going directly to the backend server, bypassing haproxy, and then the > same request going through haproxy, for the Apache and Jetty backends. > > One obvious difference in the response from the Apache server is that > it includes explicit keep-alive headers, but if I understand the > matrix in the connection-header.txt (included in doc/internals) that > shouldn't matter - as long as the Jetty server doesn't send a > Connection: Close, includes a Content-Length header and both client > and server use http/1.1 HaProxy should not add a Connection: Close > header in the response to the client. > > Any ideas what might be causing our problems? > > Thank you, > > Patrik > > --------------- > JETTY backend. > --------------- > > Direct: > ------- > > *Request* > > GET /res/jalogo.png HTTP/1.1 > Host: jetty.jalbum.test > User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; > rv:1.9.2) Gecko/20100115 Firefox/3.6 GTB6 > Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 > Accept-Language: en-us,en;q=0.5 > Accept-Encoding: gzip,deflate > Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 > Keep-Alive: 115 > Connection: keep-alive > Pragma: no-cache > Cache-Control: no-cache > > *Response* > > HTTP/1.1 200 OK > Date: Mon, 29 Mar 2010 15:32:10 GMT > Expires: Tue, 30 Mar 2010 15:32:10 GMT > Content-Type: image/png > Cache-Control: max-age=86400 > Last-Modified: Tue, 16 Mar 2010 10:55:16 GMT > Accept-Ranges: bytes > Content-Length: 7491 > Server: Jetty(6.1.21) > > Through HaProxy: > ---------------- > > *Request* > > GET /res/jalogo.png HTTP/1.1 > Host: jalbum.test > User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; > rv:1.9.2) Gecko/20100115 Firefox/3.6 GTB6 > Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 > Accept-Language: en-us,en;q=0.5 > Accept-Encoding: gzip,deflate > Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 > Keep-Alive: 115 > Connection: keep-alive > Pragma: no-cache > Cache-Control: no-cache > > *Response* > > HTTP/1.1 200 OK > Date: Mon, 29 Mar 2010 15:34:42 GMT > Expires: Tue, 30 Mar 2010 15:34:42 GMT > Cache-Control: max-age=86400 > Content-Type: image/png > Last-Modified: Tue, 16 Mar 2010 10:55:16 GMT > Accept-Ranges: bytes > Connection: close > Server: Jetty(6.1.21) > > --------------- > APACHE backend. > --------------- > > Direct: > ------- > > *Request* > > GET /gifs/green.gif HTTP/1.1 > Host: apache.jalbum.test > User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; > rv:1.9.2) Gecko/20100115 Firefox/3.6 GTB6 > Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 > Accept-Language: en-us,en;q=0.5 > Accept-Encoding: gzip,deflate > Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 > Keep-Alive: 115 > Connection: keep-alive > Pragma: no-cache > Cache-Control: no-cache > > *Response* > > HTTP/1.1 200 OK > Date: Mon, 29 Mar 2010 15:37:15 GMT > Server: Apache/2.2.10 (Linux/SUSE) > Last-Modified: Wed, 27 May 2009 15:02:43 GMT > Etag: "de39-76-46ae622a36ac0" > Accept-Ranges: bytes > Content-Length: 118 > Keep-Alive: timeout=15, max=100 > Connection: Keep-Alive > Content-Type: image/gif > > Through HaProxy: > ---------------- > > *Request* > > GET /gifs/green.gif HTTP/1.1 > Host: jalbum.test > User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; > rv:1.9.2) Gecko/20100115 Firefox/3.6 GTB6 > Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 > Accept-Language: en-us,en;q=0.5 > Accept-Encoding: gzip,deflate > Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 > Keep-Alive: 115 > Connection: keep-alive > Pragma: no-cache > Cache-Control: no-cache > > *Response* > > HTTP/1.1 200 OK > Date: Mon, 29 Mar 2010 15:26:17 GMT > Server: Apache/2.2.10 (Linux/SUSE) > Last-Modified: Wed, 27 May 2009 15:02:43 GMT > Etag: "de39-76-46ae622a36ac0" > Accept-Ranges: bytes > Content-Length: 118 > Content-Type: image/gif >

