The title of this post says it all.
pipe_timeout is the most undocumented Varnish Cache parameter.
It does what it says: it defines the timeout on
pipe sessions. The default is 60 seconds, which is a bit short, as Varnish themselves recommend pipe for long downloads etc. Yes, if the long download is served directly from a webserver, the timeout doesn't matter.
However, if a script has to generate the document first, and doesn't send anything the first 60 seconds, the timeout kicks in, and Varnish will drop the client connection.
BTW: although it is a backend parameter, it seems you can't specify the parameter in your
default.vcl backend section, but have to specify it as a start option (
-p pipe_timeout=300) instead.