Commit 350afbb7 authored by Tatuya Kamada's avatar Tatuya Kamada

Fix indentations, add several comments.

This is a cosmetic modification. Functionally, there is no change.
parent 41552297
...@@ -5,134 +5,120 @@ ...@@ -5,134 +5,120 @@
#server. #server.
# #
backend default { backend default {
.host = "%(backend_server)s"; .host = "%(backend_server)s";
.port = "%(backend_port)s"; .port = "%(backend_port)s";
.probe = { .probe = {
.timeout = 30s; .timeout = 30s;
.interval = 5s; .interval = 5s;
.window = 4; .window = 4;
.threshold = 3; .threshold = 3;
.request = .request =
"OPTIONS /erp5/getId HTTP/1.1" "OPTIONS /erp5/getId HTTP/1.1"
"Host: %(backend_server)s:%(backend_port)s" "Host: %(backend_server)s:%(backend_port)s"
"Accept-Encoding: identity" "Accept-Encoding: identity"
"Connection: close" "Connection: close"
"User-Agent: Varnish"; "User-Agent: Varnish";
} }
} }
#
#Below is a commented-out copy of the default VCL logic. If you
#redefine any of these subroutines, the built-in logic will be
#appended to your code.
#
# Called at the beginning of a request, after the complete request has been received and parsed
sub vcl_recv { sub vcl_recv {
# Force lookup if the request is a no-cache request from the client # Force lookup if the request is a no-cache request from the client
if (req.http.cache-control ~ "no-cache") { if (req.http.cache-control ~ "no-cache") {
ban_url(req.url); ban_url(req.url);
} }
if (req.request != "GET" && # Pass any requests that Varnish does not understand straight to the backend.
req.request != "HEAD" && if (req.request != "GET" &&
req.request != "PUT" && req.request != "HEAD" &&
req.request != "POST" && req.request != "PUT" &&
req.request != "TRACE" && req.request != "POST" &&
req.request != "OPTIONS" && req.request != "TRACE" &&
req.request != "PURGE" && req.request != "OPTIONS" &&
req.request != "DELETE") { req.request != "PURGE" &&
/* Non-RFC2616 or CONNECT which is weird. */ req.request != "DELETE") {
return(pipe); /* Non-RFC2616 or CONNECT which is weird. */
} return(pipe);
if (req.request != "GET" && req.request != "HEAD" && req.request != "PURGE") { }
/* We only deal with GET and HEAD by default */ # Pass anything other than GET and HEAD and PURGE directly.
return(pass); if (req.request != "GET" && req.request != "HEAD" && req.request != "PURGE") {
} /* We only deal with GET and HEAD by default */
if (req.http.Authorization) { return(pass);
/* Not cacheable by default */ }
return (pass); if (req.http.Authorization) {
} /* Not cacheable by default */
return (pass);
# no need to have cookies for the resources }
if (req.url ~ "\.(css|js|ico)$") {
unset req.http.cookie; # no need to have cookies for the resources
} if (req.url ~ "\.(css|js|ico)$") {
# remove bogus cookies unset req.http.cookie;
if (req.http.Cookie) { }
set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__utm.=[^;]+;? *", "\1"); # remove bogus cookies
set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__ac_name=\x22\x22;? *", "\1"); if (req.http.Cookie) {
set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__ac=\x22Og.3D.3D\x22;? *", "\1"); set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__utm.=[^;]+;? *", "\1");
} set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__ac_name=\x22\x22;? *", "\1");
if (req.http.Cookie == "") { set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__ac=\x22Og.3D.3D\x22;? *", "\1");
remove req.http.Cookie; }
} if (req.http.Cookie == "") {
if (req.http.Cookie && req.http.Cookie ~ "(^|; ) *__ac=") { remove req.http.Cookie;
/* Not cacheable for authorised users, }
but KM images are cacheable */ if (req.http.Cookie && req.http.Cookie ~ "(^|; ) *__ac=") {
if (!(req.url ~ "/km_img/.*\.(png|gif)$")) { /* Not cacheable for authorised users,
return (pass); but KM images are cacheable */
} if (!(req.url ~ "/km_img/.*\.(png|gif)$")) {
} return (pass);
remove req.http.Set-Cookie; }
if (req.http.Accept-Encoding) { }
if (req.http.Accept-Encoding ~ "gzip") { # XXX Is it OK to remove this of all the case?
set req.http.Accept-Encoding = "gzip"; remove req.http.Set-Cookie;
} elsif (req.http.Accept-Encoding ~ "deflate") {
set req.http.Accept-Encoding = "deflate"; if (req.http.Accept-Encoding) {
if (req.http.Accept-Encoding ~ "gzip") {
set req.http.Accept-Encoding = "gzip";
} elsif (req.http.Accept-Encoding ~ "deflate") {
set req.http.Accept-Encoding = "deflate";
} else {
# unkown algorithm
remove req.http.Accept-Encoding;
}
}
# We do not care about Accept-Language, this is url controlled
remove req.http.Accept-Language;
## XXX login form can defer based on __ac_name cookie value
if (req.url ~ "/(login_form|WebSite_viewLoginDialog)($|\?)") {
return (pass);
}
if (req.backend.healthy) {
set req.grace = 1h;
} else { } else {
# unkown algorithm set req.grace = 1w;
remove req.http.Accept-Encoding; }
} return(lookup);
}
# We do not care about Accept-Language, this is url controlled
remove req.http.Accept-Language;
#if (req.request == "PURGE") {
# if (!client.ip ~ purge) {
# error 405 "Not allowed.";
# }
# purge_url(req.url);
# error 200 "HASHPURGED";
# unset req.http.x;
#}
## XXX login form can defer based on __ac_name cookie value
if (req.url ~ "/(login_form|WebSite_viewLoginDialog)($|\?)") {
return (pass);
}
if (req.backend.healthy) {
set req.grace = 1h;
} else {
set req.grace = 1w;
}
return(lookup);
} }
# Creates the varnish cache key by the url
sub vcl_hash { sub vcl_hash {
hash_data(req.url); hash_data(req.url);
return(hash); return(hash);
} }
# Called after a cache lookup if the requested document was found in the cache
sub vcl_hit { sub vcl_hit {
#if (req.request == "PURGE" && client.ip ~ purge) { # According Vary Header do not return those headers
# set obj.ttl = 0s; remove req.http.Accept-Language;
# error 200 "Purged."; remove req.http.Accept-Encoding;
#} remove req.http.Cookie;
return(deliver);
#if (client.ip ~ purge){
# # Force refresh from localhost
# set obj.ttl = 0s;
# return (restart);
#}
# According Vary Header do not return those headers
remove req.http.Accept-Language;
remove req.http.Accept-Encoding;
remove req.http.Cookie;
return(deliver);
} }
# Called after a cache lookup if the requested document was not found in the cache
sub vcl_miss { sub vcl_miss {
return(fetch); return(fetch);
} }
# Called after a document has been successfully retrieved from the backend
sub vcl_fetch { sub vcl_fetch {
# we only cache 200 (OK) and 304 (Not Modified) responses. # we only cache 200 (OK) and 304 (Not Modified) responses.
if (beresp.status != 200 && beresp.status != 304) { if (beresp.status != 200 && beresp.status != 304) {
...@@ -169,39 +155,33 @@ sub vcl_fetch { ...@@ -169,39 +155,33 @@ sub vcl_fetch {
set beresp.grace = 1w; set beresp.grace = 1w;
/* Never send request to backend even if client ask refreshed content */ /* Never send request to backend even if client ask refreshed content */
if (beresp.ttl > 0s) { if (beresp.ttl > 0s) {
/* Setup grace period for 30days for all cacheable contents */ /* Setup grace period for 30days for all cacheable contents */
#set req.grace = 30d; set beresp.grace = 30d;
set beresp.grace = 30d; /* Remove Expires from backend, it's not long enough */
/* Remove Expires from backend, it's not long enough */ unset beresp.http.expires;
unset beresp.http.expires; # /* Set the clients TTL on this object */
# /* Set the clients TTL on this object */ # set beresp.http.cache-control = "max-age = 300";
# set beresp.http.cache-control = "max-age = 300"; /* Set how long Varnish will keep it */
/* Set how long Varnish will keep it */ set beresp.ttl = 1w;
set beresp.ttl = 1w; /* marker for vcl_deliver to reset Age: */
/* marker for vcl_deliver to reset Age: */ set beresp.http.magicmarker = "1";
set beresp.http.magicmarker = "1"; }
}
return(deliver);
}
return(deliver);
}
# Called before a cached object is delivered to the client
sub vcl_deliver { sub vcl_deliver {
if (resp.http.magicmarker) { if (resp.http.magicmarker) {
/* Remove the magic marker */ /* Remove the magic marker */
unset resp.http.magicmarker; unset resp.http.magicmarker;
/* By definition we have a fresh object */ /* By definition we have a fresh object */
set resp.http.age = "0"; set resp.http.age = "0";
} }
if (obj.hits > 0) { if (obj.hits > 0) {
set resp.http.X-Cache = obj.hits; set resp.http.X-Cache = obj.hits;
} else { } else {
set resp.http.X-Cache = "MISS"; set resp.http.X-Cache = "MISS";
} }
#if (obj.hash) { return(deliver);
# set resp.http.X-Hash = obj.hash;
#} else {
# set resp.http.X-Hash = "No hash";
#}
return(deliver);
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment