Search
Varnish Enterprise

Introduction Installation Upgrading Troubleshooting Changelog Changelog for 6.0.x Changes (Varnish Cache 4.1) Changes (Varnish Cache Plus 4.1) Known Issues Features Backend SSL/TLS Client SSL/TLS termination Cluster In-Process TLS MSE 4 Basic Configuration / Getting Started Configuration Persisted caching Categories Configuration Reference MSE 3.0 Settings mkfs.mse Memory Governor MSE 2.0 NUMA Parallel ESI Backend health counter HTTP/2 Support JSON Logging TCP Only Probes Timeouts Transit Buffer Varnish scoreboard VMODs Accept Accounting ACL (aclplus) ActiveDNS Akamai Connector AWS VCL Body Access & Transformation (xbody) Brotli Cookie Plus (cookieplus) DeviceAtlas DeviceAtlas3 Digest Dynamic backends (goto) Edgestash File Format Geolocation (geoip/mmdb) Header Manipulation (headerplus) HTTP communication (http) Image JSON parsing (json) JWT Key value storage (kvstore) Least connections director (leastconn) Module to control the built-in HTTP2 transport (h2) MSE control (mse) MSE4 control (mse4) Probe Proxy ProxyV2 TLV Attribute Extraction (proxy) Pseudo Random Number Generator Purge (purge/softpurge) Real-time Status (rtstatus) Reverse DNS (resolver) Rewrite S3 VMOD Session Slicer SQLite3 Stale Standard (std) Stat (Prometheus) Strings (str) Synthetic backends (synthbackend) Tag-based invalidation (Ykey/Xkey) TCP configuration (tcp) TLS Total Encryption (crypto) Unified director object (udo) Uniform Resource Identifier (uri) Unix Socket Utilities (unix) URL Plus (urlplus) Utils Vsthrottle

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;
	}
}

®Varnish Software, Wallingatan 12, 111 60 Stockholm, Organization nr. 556805-6203