跳到主要内容

静态配置

网关默认配置包含磁盘缓存和缓存区域的代理缓存设置。需要更新的文件取决于网关的部署方式:

对于主机或 Docker 部署,请配置以下设置:

config.yaml
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,使更改生效。

参数

有关所有插件均可使用的配置项,请参阅插件通用配置

  • cache_strategy

    string


    默认值:disk


    有效值:

    diskmemory


    缓存策略。缓存在磁盘或内存中。

  • cache_zone

    string


    默认值:disk_cache_one


    与缓存策略一起使用的缓存区域。该值应与配置文件中定义的缓存区域之一匹配,并应对应于缓存策略。例如,当使用内存缓存策略时,你应该使用内存缓存区域。

  • cache_key

    array[string]


    默认值:["$host", "$request_uri"]


    用于缓存的键。

    支持值中的内置变量和常量字符串。变量应以 $ 符号为前缀。

  • cache_bypass

    array[string]


    解析值的一个或多个参数,如果任何值不为空且不等于 0,则不会从缓存中检索响应。

    支持值中的内置变量和常量字符串。变量应以 $ 符号为前缀。

  • 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,则隐藏 ExpiresCache-Control 响应头。

  • cache_control

    boolean


    默认值:false


    如果为 true,则遵守 HTTP 规范中的 Cache-Control 行为。仅对内存策略有效。

  • no_cache

    array[string]


    解析值的一个或多个参数,如果任何值不为空且不等于 0,则不会缓存响应。

    支持值中的内置变量和常量字符串。变量应以 $ 符号为前缀。

  • cache_ttl

    integer


    默认值:300


    有效值:

    大于或等于 1


    使用内存缓存时的缓存生存时间(TTL),单位为秒。

    要调整磁盘缓存的 TTL,请更新配置文件中的 cache_ttl。TTL 值会与从上游服务收到的响应头 Cache-ControlExpires 的值共同计算。

  • 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 起可用。