Skip to content

Instantly share code, notes, and snippets.

@vparihar01
Created December 26, 2014 10:17
Show Gist options
  • Save vparihar01/c00f5d3ea578de6d8f46 to your computer and use it in GitHub Desktop.
Save vparihar01/c00f5d3ea578de6d8f46 to your computer and use it in GitHub Desktop.
Varnish default configuration works for each varnish cache.
# Gzip Initial GZIP Rule javascript only
if ((beresp.status == 200 || beresp.status == 404) && (beresp.http.content-type ~ "^(text\/html|application\/x\-javascript|aapplication\/javascript|text\/javascript)\s*($|;)" || req.url ~ "\.(js|ttf|woff)($|\?)" ) ) {
# always set vary to make sure uncompressed versions dont always win
if (!beresp.http.Vary ~ "Accept-Encoding") {
if (beresp.http.Vary) {
set beresp.http.Vary = beresp.http.Vary ", Accept-Encoding";
} else {
set beresp.http.Vary = "Accept-Encoding";
}
}
if (req.http.Accept-Encoding == "gzip") {
set beresp.gzip = true;
}
}
# priority: 5
if ( req.request == "POST" || req.request == "PUT" || req.request == "DELETE" ) {
# Pass POST/PUT/DELETE requests
set beresp.ttl = 0s;
set beresp.grace = 0s;
return(pass);
}
# priority: 10
if ( req.request == "GET" && req.url == "/" ) {
# Cache Homepage
set beresp.ttl = 300s;
set beresp.grace = 3600s;
return(deliver);
# Header rewrite Surrogate header for homepage : 5
set beresp.http.Surrogate-Control = "max-age=300";
# Header rewrite Override homepage cache header Cache-Control : 10
set beresp.http.Cache-Control = "public, max-age=300";
}
# priority: 10
if ( req.request == "GET" && req.url ~ "^/\?format=json" ) {
# JSON Req with filter
set beresp.ttl = 60s;
set beresp.grace = 300s;
return(deliver);
# Header rewrite Override Nuggets JSON Cache Header : 10
set beresp.http.Cache-Control = "public, max-age=180";
# Header rewrite Surrogate header for nuggets.json : 10
set beresp.http.Surrogate-Control = "max-age=30";
# Header rewrite Vary Header for nuggets.json : 10
set beresp.http.vary = "X-Requested-With";
}
# priority: 10
if ( req.request == "GET" && req.url ~ "/get_updated_count\.json(\?.*)?" ) {
# Header rewrite Override get_updated_count JSON Cache Header : 10
set beresp.http.Cache-Control = "public, must-revalidate, max-age=45";
# Header rewrite Surrogate Header for get_updated_count.json : 10
set beresp.http.Surrogate-Control = "max-age=10";
}
# priority: 10
if ( req.url ~ "(\.css|\.ttf|\.js|\.woff|\.swf|\.svg|\.png|\.jpg)$" ) {
# Cache long-term static resources
set beresp.ttl = 21600s;
set beresp.grace = 86400s;
return(deliver);
# Header rewrite Surrogate header for long-term static assets : 10
set beresp.http.Surrogate-Control = "max-age=432000";
}
# priority: 10
if ( req.request == "GET" && req.url ~ "\.json(\?.*)?" ) {
# Cache JSON 120s stale 5m
set beresp.ttl = 180s;
set beresp.grace = 300s;
return(deliver);
}
# priority: 10
if ( req.url ~ "^/(users|admin|)" ) {
# pass /admin,/users
set beresp.ttl = 0s;
set beresp.grace = 0s;
return(pass);
}
# priority: 10
if ( beresp.status == 200 && ((req.url ~ "^/(xxxx|yyyy/Home/xyz.jsp)")) ) {
# Race Entries 404
set beresp.ttl = 3600s;
set beresp.grace = 360000s;
return(deliver);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment