You are browsing documentation for an outdated plugin version.
Configuration
This plugin is compatible with DB-less mode.
Compatible protocols
The Proxy Caching Advanced plugin is compatible with the following protocols:
grpc
, grpcs
, http
, https
Parameters
Here's a list of all the parameters which can be used in this plugin's configuration:
-
name or plugin
string requiredThe name of the plugin, in this case
proxy-cache-advanced
.- If using the Kong Admin API, Konnect API, declarative configuration, or decK files, the field is
name
. - If using the KongPlugin object in Kubernetes, the field is
plugin
.
- If using the Kong Admin API, Konnect API, declarative configuration, or decK files, the field is
-
instance_name
stringAn optional custom name to identify an instance of the plugin, for example
proxy-cache-advanced_my-service
.The instance name shows up in Kong Manager and in Konnect, so it's useful when running the same plugin in multiple contexts, for example, on multiple services. You can also use it to access a specific plugin instance via the Kong Admin API.
An instance name must be unique within the following context:
- Within a workspace for Kong Gateway Enterprise
- Within a control plane or control plane group for Konnect
- Globally for Kong Gateway (OSS)
-
service.name or service.id
stringThe name or ID of the service the plugin targets. Set one of these parameters if adding the plugin to a service through the top-level
/plugins
endpoint. Not required if using/services/{serviceName|Id}/plugins
. -
route.name or route.id
stringThe name or ID of the route the plugin targets. Set one of these parameters if adding the plugin to a route through the top-level
/plugins
endpoint. Not required if using/routes/{routeName|Id}/plugins
. -
consumer.name or consumer.id
stringThe name or ID of the consumer the plugin targets. Set one of these parameters if adding the plugin to a consumer through the top-level
/plugins
endpoint. Not required if using/consumers/{consumerName|Id}/plugins
. -
enabled
boolean default:true
Whether this plugin will be applied.
-
config
record required-
response_code
array of typeinteger
required default:200, 301, 404
len_min:1
Upstream response status code considered cacheable. The integers must be a value between 100 and 900.
-
request_method
array of typestring
required default:GET, HEAD
Must be one of:HEAD
,GET
,POST
,PATCH
,PUT
Downstream request methods considered cacheable. Available options:
HEAD
,GET
,POST
,PATCH
,PUT
.
-
content_type
array of typestring
required default:text/plain, application/json
Upstream response content types considered cacheable. The plugin performs an exact match against each specified value; for example, if the upstream is expected to respond with a
application/json; charset=utf-8
content-type, the plugin configuration must contain said value or aBypass
cache status is returned.
-
cache_ttl
integer default:300
TTL in seconds of cache entities.
-
strategy
string required Must be one of:memory
,redis
The backing data store in which to hold cache entities. Accepted values are:
memory
andredis
.
-
cache_control
boolean required default:false
When enabled, respect the Cache-Control behaviors defined in RFC7234.
-
storage_ttl
integerNumber of seconds to keep resources in the storage backend. This value is independent of
cache_ttl
or resource TTLs defined by Cache-Control behaviors.
-
memory
record required-
dictionary_name
string required default:kong_db_cache
The name of the shared dictionary in which to hold cache entities when the memory strategy is selected. Note that this dictionary currently must be defined manually in the Kong Nginx template.
-
-
vary_query_params
array of typestring
Relevant query parameters considered for the cache key. If undefined, all params are taken into consideration.
-
vary_headers
array of typestring
Relevant headers considered for the cache key. If undefined, none of the headers are taken into consideration.
-
redis
record required-
host
stringHost to use for Redis connection when the redis strategy is defined.
-
port
integer between:0
65535
Port to use for Redis connections when the
redis
strategy is defined. Must be a value between 0 and 65535. Default: 6379.
-
timeout
integer default:2000
between:0
2147483646
Connection timeout to use for Redis connection when the
redis
strategy is defined.
-
connect_timeout
integer between:0
2147483646
-
send_timeout
integer between:0
2147483646
-
read_timeout
integer between:0
2147483646
-
username
string referenceable
-
password
string referenceable encryptedPassword to use for Redis connection when the
redis
strategy is defined. If undefined, no AUTH commands are sent to Redis.
-
sentinel_username
string referenceableSentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication will not be performed. This requires Redis v6.2.0+.
-
sentinel_password
string referenceable encryptedSentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels.
-
database
integer default:0
Database to use for Redis connection when the
redis
strategy is defined.
-
keepalive_pool_size
integer default:30
between:1
2147483646
The size limit for every cosocket connection pool associated with every remote server, per worker process. If no
keepalive_pool_size
is specified and nokeepalive_backlog
is specified, no pool is created. If nokeepalive_pool_size
is specified andkeepalive_backlog
is specified, then the pool uses the default value30
.
-
keepalive_backlog
integer between:0
2147483646
If specified, limits the total number of opened connections for a pool. If the connection pool is full, all connection queues beyond the maximum limit go into the backlog queue. Once the backlog queue is full, subsequent connect operations will fail and return
nil
. Queued connect operations resume once the number of connections in the pool is less thankeepalive_pool_size
. Note that queued connect operations are subject to set timeouts.
-
sentinel_master
stringSentinel master to use for Redis connection when the
redis
strategy is defined. Defining this value implies using Redis Sentinel.
-
sentinel_role
string Must be one of:master
,slave
,any
Sentinel role to use for Redis connections when the
redis
strategy is defined. Defining this value implies using Redis Sentinel. Available options:master
,slave
,any
.
-
sentinel_addresses
array of typestring
len_min:1
Sentinel addresses to use for Redis connections when the
redis
strategy is defined. Defining this value implies using Redis Sentinel. Each string element must be a hostname. The minimum length of the array is 1 element.
-
cluster_addresses
array of typestring
len_min:1
Cluster addresses to use for Redis connection when the
redis
strategy is defined. Defining this value implies using Redis cluster. Each string element must be a hostname. The minimum length of the array is 1 element.
-
ssl
boolean default:false
If set to
true
, then uses SSL to connect to Redis. Note: This parameter is only available for Kong Gateway versions 2.2.x and later.
-
ssl_verify
boolean default:false
If set to
true
, then verifies the validity of the server SSL certificate. Note that you need to configure the lua_ssl_trusted_certificate to specify the CA (or server) certificate used by your Redis server. You may also need to configure lua_ssl_verify_depth accordingly. Note: This parameter is only available for Kong Gateway versions 2.2.x and later.
-
server_name
stringSpecifies the server name for the new TLS extension Server Name Indication (SNI) when connecting over SSL. Note: This parameter is only available for Kong Gateway versions 2.2.x and later.
-
-
bypass_on_err
boolean default:false
Unhandled errors while trying to retrieve a cache entry (such as redis down) are resolved with
Bypass
, with the request going upstream.
-