Created
November 28, 2018 15:37
-
-
Save adautoneto/943872655654f92e1dce8389ed9515b9 to your computer and use it in GitHub Desktop.
Varnish grace period for when server is down
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
vcl 4.0; | |
import directors; | |
backend server_1 { | |
.host = "172.30.0.125"; | |
.port = "81"; | |
} | |
backend server_2 { | |
.host = "172.30.1.178"; | |
.port = "81"; | |
} | |
sub vcl_init { | |
new balancer = directors.round_robin(); | |
balancer.add_backend(server_1); | |
balancer.add_backend(server_2); | |
} | |
sub vcl_recv { | |
set req.backend_hint = balancer.backend(); | |
} | |
sub vcl_backend_response { | |
if (beresp.status >= 500) { | |
#if (beresp.status >= 500 && bereq.is_bgfetch) { | |
return (abandon); | |
} | |
set beresp.grace = 24h; | |
return (deliver); | |
} | |
sub vcl_deliver { | |
if (obj.hits > 0) { # Add debug header to see if it's a HIT/MISS and the number of hits, disable when not needed | |
set resp.http.X-Cache = "HIT"; | |
} else { | |
set resp.http.X-Cache = "MISS"; | |
} | |
return (deliver); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
vcl 4.0; | |
# Default backend definition. Set this to point to your content server. | |
backend default { | |
.host = "<IP or DNS>"; | |
.port = "<PORT>"; | |
} | |
sub vcl_backend_response { | |
if (beresp.status >= 500) { | |
#if (beresp.status >= 500 && bereq.is_bgfetch) { | |
return (abandon); | |
} | |
set beresp.grace = 24h; | |
return (deliver); | |
} | |
sub vcl_deliver { | |
if (obj.hits > 0) { # Add debug header to see if it's a HIT/MISS and the number of hits, disable when not needed | |
set resp.http.X-Cache = "HIT"; | |
} else { | |
set resp.http.X-Cache = "MISS"; | |
} | |
return (deliver); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment