HAProxy Enterprise Documentation 1.8r2
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:
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 an http-response cache-store
directive to a frontend
or listen
section to enable caching in that section:
frontend fe_main
bind :80
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
Compression