2010-03-09 57 views
1

我們曾經使用早期版本的Varnish(0.5ish,我認爲)使用'restart'操作來進行緩存代理設置在第一個404的情況下向第二個後端發送請求。在第一個後端404使用第二個後端與光油1.0.3-2

新版本的Varnish似乎不支持這一點 - 「重啓」動作似乎不再被支持,並且'req.restarts'變量不再被識別。這種行爲可能嗎?

文檔似乎已過時,許多在線示例也是如此。男人7 vcl似乎反映了目前的行爲。

如果光油不可能,您能否提出另一種解決方案?

這裏是我們的老光油配置的相關位:

sub vcl_recv { 

    # remove cookies 
    remove req.http.Cookie; 

    if (req.restarts == 0) { 
     set req.backend = backend1; 
    } else if (req.restarts == 1) { 
     set req.backend = backend2; 
    } 

    # remove any query strings 
    set req.url = regsub(req.url, "\?.*", ""); 

    # force lookup even when cookies are present 
    if (req.request == "GET" && req.http.cookie) { 
     lookup; 
    } 
} 

sub vcl_fetch { 
    # we might set a cookie from the Rails app 
    remove obj.http.Set-Cookie; 

    # force minimum ttl of 1 year 
    if (obj.ttl < 31536000s) { 
     set obj.ttl = 31536000s; 
    } 

    if (obj.status != 200 && obj.status != 302) { 
     restart; 
    } 
} 

回答

1

看來這行爲在較新版本的上光油被恢復。

相關問題