Set bereq.http.connection:close in vcl_pipe by default
Lasse Karstensen
lkarsten at varnish-software.com
Mon Jan 27 15:07:30 CET 2014
I'm going through the documentation, and came over our handling of
"bereq.http.Connection: close" in vcl_pipe. In the builtin VCL
(previously default.vcl) there is a commented out line that the administrator
can enable if they want to only do a single request per connection.
What I'm struggling with is that we have a good amount of help requests and
tickets because of this. I think many people must set connection:close for
pipe to work as they expect. (possibly overestimated by me.)
I don't know the history here, but I don't quite understand why we don't
flip this default and save us/them the trouble?
Downside is mainly TCP slow start and extra connection setup work on
the backend.
The crazy people doing SSH-tunneling or whatever must remember to unset the
header if we do. Websocket ("bereq.http.Connection: Upgrade") handling must
be done manually anyway, so they'll figure it out.
On the upside we get (I think) less odd things to write documentation about.
No more wrong-vhost-go-away if the browser sent a subsequent request for a
different vhost that went through to the wrong backend. Fewer unecessary
backend requests because the client asked a piped session for something that
Varnish already could serve from cache. Request coalescing that works.
Tollef had some input on how this should be handled in VCL, but I thought
I'd run the main idea through the development team first.
Any takers on the history here? Why do we do it this way?
--
With regards,
Lasse Karstensen
Varnish Software AS
More information about the varnish-dev
mailing list