Caching
Caching lets you offload work from your application servers by returning cached resources directly from HAProxy Enterprise. It can be applied to any reusable content that is safe to be shared among multiple clients, such as:
CSS, Javascript and icon files
API responses (e.g. JSON) that do not contain client-specific data
Small, static HTML pages
The cache runs in memory and does not store state on disk. This makes it very fast, but not durable past a reload of the load balancer. We recommend storing objects for a short duration, such as less than a minute to reduce the chance of serving stale content.
Enable the cache
-
Add a
cache
section to your configuration.cache mycache total-max-size 4 max-object-size 10000 max-age 240
Directive
Description
total-max-size
Sets the total memory the cache can consume in megabytes. The maximum value is 4095.
max-object-size
Sets the max size in bytes for a single object; Larger objects will not be stored. It cannot be larger than half of
total-max-size
.max-age
Sets the seconds for an object to stay the cache; It can be overriden with a Cache-Control header.
-
Add an
http-request cache-use
and anhttp-response cache-store
directive to afrontend
orlisten
section to enable caching in that section. Thefilter
line is required only when the section includes otherfilter
lines, but otherwise can be omitted, since it is implicitly defined.frontend fe_main bind :80 filter cache mycache http-request cache-use mycache http-response cache-store mycache default_backend be_main
Directive
Description
http-request cache-use
Fetches the requested resource from the cache. Place an if or unless statement afterwards to include or exclude a resource from being cached.
http-response cache-store
Saves the resource to the cache once it comes from the server.
Cache restrictions
Objects are cached only if all of the following are true:
The size of the resource does not exceed
max-object-size
The response from the server is 200 OK
The response does not have a Vary header
The response does not have a Cache-Control: no-cache header
Next up
Client IP preservation