Skip to content

Instantly share code, notes, and snippets.

@codl
Created September 12, 2018 14:01
Show Gist options
  • Save codl/5ad70b6f8d992c3bf2be79ed20483b88 to your computer and use it in GitHub Desktop.
Save codl/5ad70b6f8d992c3bf2be79ed20483b88 to your computer and use it in GitHub Desktop.
vcl 4.0;
backend b2_f001 {
.host = "127.0.0.1";
.port = "50676";
}
backend s3_eu_west_1 {
.host = "127.0.0.1";
.port = "29738";
}
sub vcl_recv {
set req.backend_hint = b2_f001;
if(req.restarts == 1){
set req.backend_hint = s3_eu_west_1;
}
if (req.url ~ "/$"){
set req.url = req.url + "index.html";
}
}
sub vcl_backend_fetch {
unset bereq.http.cookie;
unset bereq.http.host;
if (bereq.backend == s3_eu_west_1) {
set bereq.url = "/chitter-media" + bereq.url;
}
if (bereq.backend == b2_f001) {
set bereq.url = "/file/chitter-media" + bereq.url;
}
}
sub vcl_backend_response {
set beresp.http.x-from = bereq.backend;
if (beresp.status != 200) {
return(pass);
}
else {
set beresp.ttl = 5d;
set beresp.keep = 7d;
set beresp.grace = 0s;
set beresp.http.cache-control = "max-age=432000; immutable; public";
}
}
sub vcl_deliver {
if (req.url == "/404.html"){
set resp.status = 404;
set resp.http.cache-control = "max-age=0";
return(deliver);
}
elseif (resp.status >= 400 && resp.status < 500) {
if(req.restarts >= 1) {
set req.url = "/404.html";
}
return(restart);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment