不同处理请求的清漆处理

时间:2015-07-28 07:54:08

标签: node.js caching varnish varnish-vcl

(清漆2.1.5)

我的清漆中有一些奇怪的情况。我试图通过从NodeJS发起的PURGE请求使缓存对象无效。

我的测试包括请求对象,让它缓存,然后执行清除请求,然后再次请求它(导致获取),然后再次请求它,导致刷新缓存对象。

当我通过Firefox调试控制台测试时,它工作正常。所有步骤似乎都按预期工作。当我在NodeJS中测试整个过程时,它按预期工作,就好了。但是,当我通过Firefox让对象缓存,然后尝试通过NodeJS使其无效时,它会报告404 Not in cache。

我100%肯定我使用相同的URI,我不知道它为什么会这样做。还有其他人遇到过这个问题吗?如果是,那么这个问题的解决方案是什么?

这是我的VCL:

Functor

如您所见,我的配置非常简单。此配置用于测试目的,我知道使用负载均衡器IP是不安全的,一旦一切正常,我将更改它以使用Forwarded-For IP。

1 个答案:

答案 0 :(得分:0)

在这个帖子的帮助下: What is the function of the "Vary: Accept" HTTP header?

我发现它在确定是否要缓存时会考虑Vary标头,以及从缓存中获取哪个版本。

在我的例子中,Vary头包含User-Agent,这就是我从不同方法得到不同结果的原因。