Fastly Configuration
Caching is enabled by default. All requests that are marked as cacheable will be cached.
Note
Please read the Fastly documentation carefully to set up your caching correctly.
Tagging
Fastly supports cache tagging out of the box.
Configure the tag header to Surrogate-Key
. (fos_http_cache.tags.response_header
if you use FOSHttpCacheBundle)
Purge
Fastly supports two types of deletion of cached items using tags:
Soft Purge: This is the default behavior. It will mark the cached item as stale. Stale items may still be served (e.g. with the
stale-while-revalidate
orstale-on-error
cache control headers). Once the TTL expires, the stale item will be evicted from the cache and the next request must be fetched from the origin.Purge: This will immediately evict the cached item from the cache and the next request will be fetched from the origin.
There are different ways to purge the cache:
Using Tags
Using URLs
Cache Header
To specify how long items should be cached you can use the Surrogate-Control
header.
Using this header enables you to use the Cache-Control
header to specify the cache duration for browsers.
Currently, FOSHttpCache does not yet support the Surrogate-Control
header.
To configure the Cache-Control
you either have to set Surrogate-Control
yourself or
configure the Cache-Control
header in your Fastly configuration.
set beresp.http.Surrogate-Control = beresp.http.Cache-Control;
// Add your rules here
if (req.url ~ "\.(css|js|jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|swf|flv|woff|woff2|svg|ico)") {
} else {
set beresp.http.Cache-Control = "no-store, max-age=0";
}