跳到主要内容

静态配置

默认情况下,磁盘缓存时的 cache_ttl 和缓存 zones 等值在默认配置中进行了预配置。

要自定义这些值,请将相应的配置添加到 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


    default: disk


    vaild vaule:

    disk or memory


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

  • cache_zone

    string


    default: disk_cache_one


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

  • cache_key

    array[string]


    default: ["$host", "$request_uri"]


    用于缓存的键。

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

  • cache_bypass

    array[string]


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

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

  • cache_method

    array[string]


    default: ["GET", "HEAD"]


    vaild vaule:

    "GET"、"POST" 和 "HEAD" 方法的任意组合。


    响应应被缓存的请求方法。

  • cache_http_status

    array[integer]


    default: [200, 301, 404]


    vaild vaule:

    200 至 599(含边界值)之间整数值的任意组合


    响应应被缓存的响应 HTTP 状态码。

  • hide_cache_headers

    boolean


    default: false


    如果为 true,则隐藏 ExpiresCache-Control 响应头。

  • cache_control

    boolean


    default: false


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

  • no_cache

    array[string]


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

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

  • cache_ttl

    integer


    default: 300


    vaild vaule:

    大于或等于 1


    在内存中缓存时的缓存生存时间 (TTL)(以秒为单位)。

    要在磁盘缓存时调整 TTL,请更新配置文件中的 cache_ttl。TTL 值是结合从上游服务接收的响应头 Cache-ControlExpires 中的值进行评估的。