微缓存和 Nginx 确实可以加快应用程序速度。是否可以将微缓存(或类似的东西)与 Varnish 一起使用?
答案1
如果您要花费大量时间缓存动态响应 - 即使只有 1 秒 - 您也需要确保您缓存的数据是安全的。
即不包含任何会话/用户特定数据
一旦你这样做了——你也可能让缓存持续到它必须失效/过期的地步。所以你所描述的做法的好处实际上并不存在。
数据可以安全缓存而无需进行任何应用程序修改(即不包含购物车内容/用户信息等) - 在这种情况下,您可以启用无限期缓存直到下一次清除...或者...您必须重新编码您的应用程序以确保它仅在数据可以缓存时发送“可缓存”标头 - 并编辑您的 VCL,以便在必要时使缓存的会话无效。
我认为它唯一适合的情况是用于虚荣测试 RPSab
或siege
......
答案2
如果您所说的微缓存是指非常低的 ttl。那么是的。Varnish 可以做到这一点。
对于 Varnish 3.x:
在函数末尾的 sub vcl_fetch() 中(或其他逻辑位置):
设置beresp.ttl = 1s;
请记住“shortlived”参数(默认为 10 秒)。创建时 TTL 短于此的对象始终会放入临时存储中。默认情况下,Varnish 将使用无限 malloc 进行临时存储。