Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Sebastian
slapos
Commits
350afbb7
Commit
350afbb7
authored
Apr 20, 2012
by
Tatuya Kamada
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix indentations, add several comments.
This is a cosmetic modification. Functionally, there is no change.
parent
41552297
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
122 additions
and
142 deletions
+122
-142
slapos/recipe/generic_varnish/template/default.vcl.in
slapos/recipe/generic_varnish/template/default.vcl.in
+122
-142
No files found.
slapos/recipe/generic_varnish/template/default.vcl.in
View file @
350afbb7
...
@@ -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);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment