【发布时间】:2014-03-12 06:38:29
【问题描述】:
我有一个使用 Joomfish 进行翻译的多语言 joomla 网站。由于 Joomfish 使用 cookie 来更改语言而不是不同的 url,因此我在使其正常工作时遇到了重大问题。但是,我找到了一种解决方法,方法是让清漆检查 cookie 值,如果英语服务缓存,如果还有其他内容,则传递给服务器。
很好,但我希望能够缓存其他版本。有没有办法为不同的语言提供不同的缓存。所以是德语、法语等的缓存版本。
我尝试过使用不同的 nginx 配置文件并设置不同的清漆后端,但这似乎不起作用。
为此我做到了:
/* default is english */
backend default {
.host = "127.0.0.1";
.port = "8080";
}
/* french backend */
backend french {
.host = "127.0.0.1";
.port = "8081";
}
然后在我的sub recv函数中:
if(req.http.cookie ~ "jfcookie\[lang\]=fr"){
set req.backend = french;
}
这似乎服务于相同的缓存后端。因此,如果您使用法语,它会将您发送到英语内容。
【问题讨论】:
标签: caching cookies nginx varnish