2017-02-14 25 views
0

Моя идея - настроить кеш-лайнер на первичных бэкэндах (например, HTTP 503), прежде всего, попробовать другой бэкэнд, если он не выполнен, служить статическим сообщением об ошибке.Бэкэнда для защиты от лака или статической ошибки

Можно ли настроить его таким образом? Постскриптум Я не хочу, чтобы лак работал с экстренным бэкэндом, если первичный код действительно не удался. Экстренный сервер всегда имеет несколько устаревшие данные.

Я использую Varnish 4, планируя скоро двигаться до 5.X. Backend - это Java или PHP-приложения.

ответ

0

Конечно, вы можете сделать это, вы должны изменить код vcl_backend_response настройки его с bereq.retries и return(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!")); 
     } 

}