静态配置
网关默认配置包含磁盘 缓存和缓存区域的代理缓存设置。需要更新的文件取决于网关的部署方式:
- 主机或 Docker
- Kubernetes (Helm)
对于主机或 Docker 部署,请配置以下设置:
apisix:
proxy_cache:
cache_ttl: 10s # 磁盘缓存使用的默认缓存 TTL;仅当响应中不包含 `Expires`
# 和 `Cache-Control` 响应头,或 APISIX 因上游不可用而返回
# `502 Bad Gateway` 或 `504 Gateway Timeout` 时生效
zones:
- name: disk_cache_one
memory_size: 50m
disk_size: 1G
disk_path: /tmp/disk_cache_one
cache_levels: 1:2
# - name: disk_cache_two
# memory_size: 50m
# disk_size: 1G
# disk_path: "/tmp/disk_cache_two"
# cache_levels: "1:2"
- name: memory_cache
memory_size: 50m
然后重新加载 APISIX,使更改生效。
在 APISIX Helm Chart 2.16.0 或更高版本和 API7 Gateway Helm Chart 3.10.3 或更高版本中,请设置 apisix.proxyCache。
两个 Chart 都会在网关配置中将此值渲染为 apisix.proxy_cache:
apisix:
proxyCache:
cacheTtl: 10s
zones:
- name: disk_cache_one
memory_size: 50m
disk_size: 1G
disk_path: /tmp/disk_cache_one
cache_levels: 1:2
- name: memory_cache
memory_size: 50m
然后使用该网关发布版 本对应的 Chart 应用 values 文件:
helm upgrade <release-name> <chart-name> -n <namespace> -f values.yaml
参数
有关所有插件均可使用的配置项,请参阅插件通用配置。
cache_strategy
string
默认值:
disk有效值:
disk或memory缓存策略。缓存在磁盘或内存中。
cache_zone
cache_key
cache_bypass
cache_method
array[string]
默认值:
["GET", "HEAD"]有效值:
"GET"、"POST" 和 "HEAD" 方法的任意组合
响应应被缓存的请求方法。
cache_http_status
array[integer]
默认值:
[200, 301, 404]有效值:
200 到 599 之间整数值的任意组合(含边界值)
响应应被缓存的响应 HTTP 状态码。
hide_cache_headers
boolean
默认值:
false如果为 true,则隐藏
Expires和Cache-Control响应头。cache_control
boolean
默认值:
false如果为 true,则遵守 HTTP 规范中的
Cache-Control行为。仅对内存策略有效。no_cache
cache_ttl
integer
默认值:
300有效值:
大于或等于 1
使用内存缓存时的缓存生存时间(TTL),单位为秒。
要调整磁盘缓存的 TTL,请更新配置文件中的
cache_ttl。TTL 值会与从上游服务收到的响应头Cache-Control和Expires的值共同计算。consumer_isolation
boolean
默认值:
true如果为 true,当请求解析出 Consumer 或远程用户时,将已认证 Consumer 身份添加到实际缓存键前。若
cache_key已包含$consumer_name、$consumer_group_id、$remote_user或$http_authorization等携带身份的变量,则不会重复添加。自 API7 企业版 3.9.13 和 APISIX 3.17.0 起可用。cache_set_cookie
boolean
默认值:
false如果为 true,允许内存缓存策略缓存包含
Set-Cookie响应头的响应。默认情况下,此类响应不会被缓存。自 API7 企业版 3.9.13 和 APISIX 3.17.0 起可用。