req.hash

STRING, can only be set (cannot be read or unset).

Available inhasherror

Hash value for the object. The hash determines what is unique about an object. Anything added to the hash will cause Varnish to cache objects separately based on that information.

For example, adding req.url to the hash causes each URL to be cached as a separate object as one would normally expect.

To ensure purge all functionality works for the service, req.vcl.generation must be added to req.hash as shown below:

set req.hash += req.vcl.generation;

Try it out

req.hash is used in the following code examples. Examples apply VCL to real-world use cases and can be deployed as they are, or adapted for your own service. See the full list of code examples for more inspiration.

Click RUN on a sample below to provision a Fastly service, execute the code on Fastly, and see how the function behaves.

Support caching of OPTIONS requests

Normally OPTIONS requests aren't cacheable. Allow caching of OPTIONS by converting the request to a GET and back to OPTIONS if it's a cache miss.

Cache '429' rate-limiter responses per IP

If a backend returns a 429, cache it for the requesting IP but continue to allow other clients to use origin.