caching - 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
...
如何调试绕过原因?
解决方案
为避免在 X-Cache-Status 中绕过,您必须在创建代理缓存插件时添加此配置
--data "config.content_type=application/json; charset=utf-8"
推荐阅读
- javascript - 强制 Sublime Text Editor 使用 4 个空格进行缩进
- ios - nativescript+angular livesync 在 mac 上不起作用
- sql-server - Apache/Xampp 的 SQL Server 连接问题
- java - How to get the value of an enum using @Field from beanio
- python-3.x - Pandas Read Excel function convert index to list
- python - Associating two item in a list
- html - 如何禁用Angular材料中的第二个mat-list-item
- android - android intent setFlags issue
- html - How to put main content under a fixed header?
- c# - 需要正则表达式来提取月、日、时间,即 Sep 14 16:08