静态配置
网关默认配置包含磁盘缓存和缓存区域的代理缓存设置。需要更新的文件取决于网关的部署方式:
- 主机或 Docker
- Kubernetes (Helm)
对于主机或 Docker 部署,请配置以下设置:
apisix:
proxy_cache:
cache_ttl: 10s # 用于磁盘缓存
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 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_ttl
integer
默认值:
300有效值:
大于或等于 1
使用内存缓存时的缓存生存时间(TTL),单位为秒。
要调整磁盘缓存的 TTL,请更新配置文件中的
cache_ttl。请注意,仅当响应头中同时缺少Cache-Control和Expires时,才会使用该 TTL 值。consumer_isolation
boolean
默认值:
true如果为 true,当请求解析为 APISIX Consumer 或远程用户时,将已认证的 Consumer 身份添加到实际缓存键前。任意上游凭据(例如转发的 Bearer Token)不会被用作身份。如果路由在未使用 APISIX 身份认证插件的情况下转发用户专属凭据,不同用户可能会收到相同的缓存响应。请为该路由启用 APISIX 身份认证插件或禁用缓存。自 API7 企业版 3.9.13 和 APISIX 3.17.0 起可用。
cache_set_cookie
boolean
默认值:
false如果为 true,则允许内存缓存策略缓存包含
Set-Cookie响应头的响应。默认情况下,此类响应不会被缓存。自 API7 企业版 3.9.13 和 APISIX 3.17.0 起可用。