Caching
You can enable caching in your cloud infrastructure project environment. If you disable caching, ÃÛ¶¹ÊÓƵ Commerce directly serves the files.
{default}
placeholder represents the default domain configured for your site. If your project has multiple domains, use the {all}
placeholder to configure routing for the default domain and all aliases. See Configure routes.Set up caching
Enable caching for your application by configuring cache rules in the .magento/routes.yaml
file as follows:
http://{default}/:
type: upstream
upstream: php:php
cache:
enabled: true
headers: [ "Accept", "Accept-Language", "X-Language-Locale" ]
cookies: ["*"]
default_ttl: 60
Route-based caching
Enable fine-grained caching by setting up caching rules for several routes separately as the following example shows:
http://{default}/:
type: upstream
upstream: php:php
cache:
enabled: true
http://{default}/path/:
type: upstream
upstream: php:php
cache:
enabled: false
http://{default}/path/more/:
type: upstream
upstream: php:php
cache:
enabled: true
The preceding example caches the following routes:
http://{default}/
http://{default}/path/more/
http://{default}/path/more/etc/
And the following routes are not cached:
http://{default}/path/
http://{default}/path/etc/
Cache duration
The cache duration is determined by the Cache-Control
response header value. If no Cache-Control
header is in the response, the default_ttl
key is used.
Cache key
To decide how to cache a response, ÃÛ¶¹ÊÓƵ Commerce builds a cache key that depends on several factors and store the response associated with this key. When a request comes with the same cache key, the response is reused. Its purpose is similar to the HTTP .
The parameters headers
and cookies
keys enable you to change this cache key.
The default value for these keys follows:
cache:
enabled: true
headers: ["Accept-Language", "Accept"]
cookies: ["*"]
Cache attributes
enabled
When set to true
, enable the cache for this route. When set to false
, disable the cache for this route.
headers
Defines on which values the cache key must depend.
For example, if the headers
key is the following:
cache:
enabled: true
headers: ["Accept"]
Then ÃÛ¶¹ÊÓƵ Commerce caches a different response for each value of the Accept
HTTP header.
cookies
The cookies
key defines on which values the cache key must depend.
For example:
cache:
enabled: true
cookies: ["value"]
The cache key depends on the value of the value
cookie in the request.
A special case exists if the cookies
key has the ["*"]
value. This value means that any request with a cookie bypasses the cache. This is the default value.
*
). For example, SESS*
or ~SESS
are currently not valid values.Cookies have the following restrictions:
- You can set maximum of 50 cookies in the system. Otherwise, the application throws an
Unable to send the cookie. Maximum number of cookies would be exceeded
exception. - A maximum cookie size is 4096 bytes. Otherwise, the application throws an
Unable to send the cookie. Size of '%name' is %size bytes
exception.
default_ttl
If the response does not have a Cache-Control
header, the default_ttl
key is used to define the cache duration, in seconds. The default value is 0
, which means nothing is cached.