2017-02-14 35 views
0

我的想法是在主後端上配置Varnish-cache失敗(例如HTTP 503),首先嚐試另一個後端(如果失敗)提供靜態錯誤消息。清除緊急後端或發送靜態錯誤

可以這樣配置嗎?附:除非基層真的失敗,否則我不希望清漆能夠用於緊急後端。緊急後端總是有一些過時的數據。

我正在使用Varnish 4,很快將其移動到5.X。後端是Java或PHP應用程序。

回答

0

當然,你可以做到這一點,你應該改變你的vcl_backend_response代碼bereq.retriesreturn(retry)調整它:

sub vcl_backend_response { 
     if (beresp.status == 503 && bereq.retries == 0) { 
       set bereq.http.Host = "myNewHost"; 
       return(retry); 
     } 
     if (beresp.status == 503 && bereq.retries > 0) { 
       return (synth(503, "Oh noes!")); 
     } 

}