目前我们有3个应用程序(清漆后端):
这之间的主要思想是我们为Eshop和CMS拥有相同的域名。并且所有链接都存储在MySQL数据库中。因此,要确定清漆应该在哪里,我们正在使用一些路由应用程序。
如果我们在 vcl_recv 中点击路由后端,我们正在检查 vcl_backend_response 中的状态并切换后端,如下所示:
sub vcl_backend_response {
if (591 == beresp.status) {
set bereq.backend = eshopDirector.backend();
return (retry);
} elsif (592 == beresp.status || 593 == beresp.status || 594 == beresp.status) {
set bereq.backend = cmsDirector.backend();
return (retry);
}
}
在重试之后,我们没有缓存结果,因为没有再次点击 vcl_recv 阶段来确定是否必须从缓存或后端本身检索结果。
所以这里的问题是,有没有办法确定哪些后端必须从 vcl_recv 阶段使用,以便之后获得缓存结果? 也许有可能从那里发出CURL请求以从路由应用程序获取状态并相应地处理它?</ p>