Назад | Перейти на главную страницу

Varnish Server выдает ошибку 503, когда серверная часть не работает

Varnish немедленно начинает показывать ошибку 503 Service Unavailable, когда серверная часть сайта не работает. Конфигурация такова, что все должно храниться в кэше 7 дней.

Я бы ожидал, что сайт будет работать, если серверная часть не будет работать в течение часа. Кэш-сервер должен по-прежнему обслуживать страницы из своего кеша.

Сайт представляет собой полностью статичный сайт с 300 000 просмотров страниц в день. Показатель попаданий пока 2: 5 (MISS - HIT), думаю, он тоже должен быть выше.

Конфигурация / etc / varnish / по умолчанию:

backend www {
   .host = "ip address here";
   .port = "http";
   .connect_timeout = 1s;
   .first_byte_timeout = 5s;
   .between_bytes_timeout = 2s;
}
sub vcl_deliver {
        if (obj.hits > 0) {
                set resp.http.X-Cache = "HIT";
        }
        else {
                set resp.http.X-Cache = "MISS";
        }
}
sub vcl_recv {
        #if (req.request == "GET" && req.url ~ "\.(js|css|jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|swf|cgi|ico)$") {
                unset req.http.cookie;
                return (lookup);
        #}
}
sub vcl_fetch {
        if (beresp.http.Set-Cookie) {
        #if (req.request == "GET" && req.url ~ "\.(js|css|jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|swf|cgi|ico)$") {
                unset beresp.http.set-cookie;
                set beresp.ttl = 7d;
                return(deliver);
        }
}

.Htaccess с сайта:

<IfModule mod_headers.c>
SetEnv force-no-vary
Header append Vary: Accept-Encoding
Header unset Pragma
Header unset ETag
Header unset Last-Modified
FileETag None

# YEAR
<filesMatch "\.(ico|gif|jpg|jpeg|png|flv|pdf)$">
  Header set Cache-Control "max-age=29030400"
</filesMatch>
# WEEK
<filesMatch "\.(js|css|swf)$">
  Header set Cache-Control "max-age=604800"
</filesMatch>
# 3 DAYS
<filesMatch "\.(php|cgi|pl|htm)$">
  Header set Cache-Control "max-age=259200"
</filesMatch>
</ifModule>

Вам нужно посмотреть на реализацию режима Grace и / или Saint.

Режимы Varnish Grace и Saint

Режим Grace позволяет вам обслуживать устаревший контент, когда ваши серверные ВМ не работают или работают медленно, а режим святого позволяет вам повторить попытку другого бэкэнда, если бэкэнд, который вы использовали, выдает ошибку.