当后端closures时,Varnish Server会引发错误503

当网站的后端closures时,清漆立即开始显示503服务不可用错误。 configuration是一切应该被caching7天。

如果后端会停下来一个小时,我希望这个站点能够维持下去。 caching服务器仍然应该从caching中提供页面。

该网站是一个完全静态的网站,每天有300.000页面浏览量。 到目前为止的命中率是2:5(MISS – HIT),我认为这也应该更高。

/ etc / varnish / defaultconfiguration:

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模式。

光油恩典和圣徒模式

宽限模式允许您在后端closures或缓慢时提供陈旧的内容,如果您使用的后端出现错误,圣徒模式允许您重试另一个后端。