Varnish腳本編寫對於vcl來說看起來相當健壯,但我還不知道如何讓它做我需要的。我運行來自相同代碼庫的各種網站,並且我想爲大多數目錄提供統一的清漆緩存,所以如何寫清漆腳本來做一些非常特別的事情
x.mysite.org/theme/something.gif和y.mysite.org/theme/something.gif應該不存儲相同的gif的兩個副本在清漆緩存
然而
x.mysite.org/file.php/1和y.mysite.org/file.php/1應根據有單獨的緩存網址。
另外mysite.org是一個有其自己的緩存整個其他網站。
我現在的方向是如下
sub vcl_fetch {
if (req.url ~ ".*\.org/file\.php") {
# do normal site specific caching
} elseif (req.url ~ "^+?\.mysite.org") {
# cache all found material in a base directory so everyone knows where to look
set req.url = regsub(req.url, "(.*\.org)(.*)", "base.mysite.org\2");
} else {
# do normal site specific caching for base site
}
}
sub vcl_recv {
# do I need to do something here to look in base.mysite.org
}
我可以讓base.mysite.org如果需要一個真正的Apache提供服務的網站,這樣的要求可以在沒有緩存告吹。
我在寫道上,有什麼幫助。