我使用的清漆3后面的代理多个网站到一个域。 基本设置工作正常,但我现在有一个问题,如果文件名已存在于它的缓存中,清漆会提供错误的文件。 基本上所有我在default.vcl做的是:清漆服务错误的文件
if(req.url ~ "^/foo1") {
set req.backend = foo1;
set req.url = regsub(req.url, "^/foo1/", "/");
}
else if(req.url ~ "^/foo2") {
set req.backend = foo2;
set req.url = regsub(req.url, "^/foo2/", "/");
}
如果我现在请/foo1/index.html,/foo2/index.html将服务于同一个文件。重新启动清漆并调用/foo2/index.html后,/ foo1/index.html将为foo2的index.html提供服务。
至于我发现这是创作不尊重使用后端,但只有网址(缩短)之后的散列的问题和领域:
11 VCL_call c hash
11 Hash c /index.html
11 Hash c mydomain
我解决了这个问题现在通过改变我的vcl_hash也使用的后端,但我敢肯定,必须有一个更好的,更方便的方法:
sub vcl_hash {
hash_data(req.url);
hash_data(req.backend);
}
任何暗示将不胜感激,非常感谢你!
谢谢!第二种方法看起来很好,只是经过测试! – deveth0