首页 > 解决方案 > X-Cache-Status 始终使用 Kong 代理缓存插件绕过

问题描述

我在 Kong 有服务,我为该服务设置了代理缓存插件。

curl -X POST http://localhost:8001/plugins --data "name=proxy-cache" --data "config.strategy=redis" --data 'service_id=2f0a285d-7b25-48d6-adc3-bbf28ffe5f47' --data "config.redis.host=127.0.0.1" --data "config.redis.port=6379" --data "config.redis.password=my_redis_password"

当我从该服务调用 API 时:

curl -i -X GET --url http://localhost:3002/v1/currency --header 'apikey: MY_API_KEY'

一切正常,但X-Cache-Status始终是Bypass

HTTP/1.1 200 OK                                                                                                                                       
Content-Type: application/json; charset=utf-8                                                                                                         
Content-Length: 3654                                                                                                                                  
Connection: keep-alive                                                                                                                                
X-RateLimit-Limit-second: 100                                                                                                                         
X-RateLimit-Remaining-second: 99                                                                                                                      
X-Cache-Key: 3e18cdfc6e02359fb0f874efdf5788d8                                                                                                         
X-Cache-Status: Bypass                                                                                                                                
X-Powered-By: Express
...

如何调试绕过原因?

标签: cachingrediskongkong-plugin

解决方案


为避免在 X-Cache-Status 中绕过,您必须在创建代理缓存插件时添加此配置

--data "config.content_type=application/json; charset=utf-8" 

推荐阅读