Search
Varnish Enterprise

Timeouts

Varnish 6.0

Introduction

Varnish Enterprise offers extra facilities to modify a couple of timeouts from the VCL. This allows users to override them on a per-request basis and to leave the general setting intact.

Last byte timeout

last_byte_timeout is the amount of time, in seconds, to wait for a complete backend response. A value of 0 means this setting is not used. This parameter has a default value of 0 and can be set with a varnishd -p parameter, a backend definition, or bereq variable.

Example:

sub vcl_backend_fetch {
        # Give all requests with a URL ending in
        # .zip 4 seconds to finish
        if (urlplus.get_extension() == "zip") {
	        set bereq.last_byte_timeout = 4s;
        }
}

Send timeout

send_timeout is the upper limit for Varnish to send a response to a client. Once this time limit is reach, Varnish will abort the transaction to reclaim resources. This can be set in VCL using the resp.send_timeout variable.

Example:

sub vcl_deliver {
	# ISO files are large and may need up to 30 minutes to be downloaded
	if (urlplus.get_extension() == "iso") {
		set resp.send_timeout = 30m;
	}
}