Fastly VCL reference

Fastly's Varnish is based on Varnish 2.1 and our Varnish syntax is specifically compatible with Varnish 2.1.5. The principal configuration mechanism of Varnish software is the Varnish Configuration Language (VCL), the scripting language used to configure and add logic to Varnish caches. Fastly has included a number of extensions to VCL that won't be covered by any other documentation.



Functions available in Fastly VCL.


VCL variables supported by Fastly.

Local variables

Fastly's VCL supports variables for storing temporary values during request processing.


Fastly's VCL provides various arithmetic and conditional operators.


Fastly's VCL is a statically typed language. Several types are available.

  VCL Snippets

About VCL Snippets

VCL Snippets are short blocks of VCL logic that can be included directly in your service configurations.

Using dynamic VCL Snippets

Dynamic VCL Snippets are versionless sections of VCL logic that can be inserted into your service configuration without requiring custom VCL. API only.

Using regular VCL Snippets

Regular VCL Snippets are versioned sections of VCL logic that can be inserted into your service configuration without requiring custom VCL.

  Custom VCL

Creating custom VCL

Create your own Varnish Configuration Language (VCL) files with specialized configurations.

Uploading custom VCL

Upload custom VCL files to use custom VCL and Fastly VCL together at the same time.

Previewing and testing VCL

Preview and test custom VCL prior to activating a new version of a service.



Functions for cryptographic- and hashing-related purposes.

Date and time

Variables and functions that provide flexibility when dealing with dates and times.

Edge Side Includes (ESI)

Variables that allow you to track and control requests with ESI.


Variables that provide the ability to search a geolocation database for a given host or IP address.


Miscellaneous features that don't easily fit into other categories.

Query string manipulation

Functions for query-string manipulation based on Dridi Boukelmoune's vmod-querystring for Varnish.


Functions that support the insertion of random strings, content cookies, and decisions into requests.


Variables that give more insight into what happened in a request.

TLS and HTTP/2

Variables that expose information about the TLS and HTTP/2 attributes of a request.


Functions that provide interfaces for generating and validating unique identifiers.