Kong 代理缓存插件 - X-Cache-Status 在启用 cache_control 时总是绕过
Kong proxy cache plugin - X-Cache-Status is always Bypass when cache_control is enabled
我在 Kong 注册了服务,目前正在尝试设置 proxy-cache 插件。
当缓存控制设置为 false 时,插件本身工作正常,但是当我启用它时,X-Cache-Status header 总是绕过。
插件配置如下所示:
plugins:
- name: proxy-cache
service: echo
config:
response_code
- 200
- 301
- 404
request_method:
- GET
- HEAD
content_type:
- text/plain
- application/json
- application/json; charset=utf-8
- text/plain; charset=utf-8
cache_ttl: 300
strategy: memory
cache_control: true
memory:
dictionary_name: kong_db_cache
请求如下所示:
curl --location --request GET 'http://localhost:8000/echo' --header 'Cache-Control: public, max-age=20'
我正在尝试不同的 Cache-Control 值,还注册了 request-transformer 插件并在那里玩 headers,但似乎没有任何效果。
以前有人遇到过这个问题吗?我几乎被困在这里,非常欢迎任何建议。
您已设置选项
cache_control: true
因此 Kong 将尊重 RFC7234
中定义的 Cache-Control 行为
您需要将 header 缓存到上游答案中。
或者你应该将它设置为 false
我在 Kong 注册了服务,目前正在尝试设置 proxy-cache 插件。
当缓存控制设置为 false 时,插件本身工作正常,但是当我启用它时,X-Cache-Status header 总是绕过。
插件配置如下所示:
plugins:
- name: proxy-cache
service: echo
config:
response_code
- 200
- 301
- 404
request_method:
- GET
- HEAD
content_type:
- text/plain
- application/json
- application/json; charset=utf-8
- text/plain; charset=utf-8
cache_ttl: 300
strategy: memory
cache_control: true
memory:
dictionary_name: kong_db_cache
请求如下所示:
curl --location --request GET 'http://localhost:8000/echo' --header 'Cache-Control: public, max-age=20'
我正在尝试不同的 Cache-Control 值,还注册了 request-transformer 插件并在那里玩 headers,但似乎没有任何效果。
以前有人遇到过这个问题吗?我几乎被困在这里,非常欢迎任何建议。
您已设置选项
cache_control: true
因此 Kong 将尊重 RFC7234
中定义的 Cache-Control 行为您需要将 header 缓存到上游答案中。 或者你应该将它设置为 false