First hacked up varnish vcl for stg that works with 4.0
This commit is contained in:
parent
7cb1bee6ea
commit
3b964174d5
1 changed files with 71 additions and 79 deletions
|
@ -1,15 +1,6 @@
|
|||
vcl 4.0;
|
||||
#This is a basic VCL configuration file for varnish. See the vcl(7)
|
||||
#man page for details on VCL syntax and semantics.
|
||||
#
|
||||
#Default backend definition. Set this to point to your content
|
||||
#server.
|
||||
#
|
||||
sub vcl_error {
|
||||
if (obj.status == 400 || obj.status == 413) {
|
||||
return(deliver);
|
||||
}
|
||||
}
|
||||
|
||||
import directors;
|
||||
|
||||
backend wiki {
|
||||
.host = "localhost";
|
||||
|
@ -64,10 +55,11 @@ backend fas03 {
|
|||
}
|
||||
}
|
||||
|
||||
director fas round-robin {
|
||||
{ .backend = fas01; }
|
||||
{ .backend = fas02; }
|
||||
{ .backend = fas03; }
|
||||
sub vcl_init {
|
||||
new fas = directors.round_robin();
|
||||
fas.add_backend(fas01);
|
||||
fas.add_backend(fas02);
|
||||
fas.add_backend(fas03);
|
||||
}
|
||||
|
||||
backend voting {
|
||||
|
@ -126,82 +118,82 @@ backend paste {
|
|||
.port = "10027";
|
||||
}
|
||||
|
||||
acl purge {
|
||||
"192.168.1.3";
|
||||
"192.168.1.4";
|
||||
"192.168.1.5";
|
||||
"192.168.1.6";
|
||||
"192.168.1.13";
|
||||
"192.168.1.24";
|
||||
"192.168.1.23";
|
||||
"192.168.1.41";
|
||||
"10.5.126.31";
|
||||
"10.5.126.32";
|
||||
"10.5.126.33";
|
||||
"10.5.126.34";
|
||||
"10.5.126.37";
|
||||
"10.5.126.38";
|
||||
}
|
||||
#acl purge {
|
||||
# "192.168.1.3";
|
||||
# "192.168.1.4";
|
||||
# "192.168.1.5";
|
||||
# "192.168.1.6";
|
||||
# "192.168.1.13";
|
||||
# "192.168.1.24";
|
||||
# "192.168.1.23";
|
||||
# "192.168.1.41";
|
||||
# "10.5.126.31";
|
||||
# "10.5.126.32";
|
||||
# "10.5.126.33";
|
||||
# "10.5.126.34";
|
||||
# "10.5.126.37";
|
||||
# "10.5.126.38";
|
||||
#}
|
||||
|
||||
sub vcl_recv {
|
||||
if (req.request == "PURGE") {
|
||||
if (!client.ip ~ purge) {
|
||||
error 405 "Not allowed.";
|
||||
}
|
||||
if (req.url ~ "^http://") {
|
||||
set req.url = regsub(req.url, "http://localhost:6081","");
|
||||
}
|
||||
purge_url(req.url);
|
||||
}
|
||||
# if (req.request == "PURGE") {
|
||||
# if (!client.ip ~ purge) {
|
||||
# error 405 "Not allowed.";
|
||||
# }
|
||||
# if (req.url ~ "^http://") {
|
||||
# set req.url = regsub(req.url, "http://localhost:6081","");
|
||||
# }
|
||||
# purge_url(req.url);
|
||||
# }
|
||||
|
||||
if (req.url ~ "^/wiki/") {
|
||||
set req.backend = wiki;
|
||||
set req.backend_hint = wiki;
|
||||
}
|
||||
if (req.url ~ "^/w/") {
|
||||
set req.backend = wiki;
|
||||
set req.backend_hint = wiki;
|
||||
}
|
||||
if (req.url ~ "^/pkgdb/appicon/show/") {
|
||||
set req.backend = pkgdb;
|
||||
set req.backend_hint = pkgdb;
|
||||
unset req.http.cookie;
|
||||
}
|
||||
if (req.url ~ "^/mirrorlist/") {
|
||||
set req.backend = mirrorlists;
|
||||
set req.backend_hint = mirrorlists;
|
||||
}
|
||||
if (req.url ~ "^/pkgdb") {
|
||||
set req.backend = pkgdb;
|
||||
set req.backend_hint = pkgdb;
|
||||
}
|
||||
if (req.url ~ "^/accounts/") {
|
||||
set req.backend = fas;
|
||||
set req.backend_hint = fas.backend();
|
||||
}
|
||||
if (req.url ~ "^/voting/") {
|
||||
set req.backend = voting;
|
||||
set req.backend_hint = voting;
|
||||
}
|
||||
if (req.url ~ "^/mirrormanager/") {
|
||||
set req.backend = mirrormanager;
|
||||
set req.backend_hint = mirrormanager;
|
||||
}
|
||||
if (req.url ~ "^/updates/") {
|
||||
set req.backend = bodhi;
|
||||
set req.backend_hint = bodhi;
|
||||
}
|
||||
if (req.url ~ "^/freemedia/") {
|
||||
set req.backend = freemedia;
|
||||
set req.backend_hint = freemedia;
|
||||
}
|
||||
if (req.url ~ "^/packages/") {
|
||||
set req.backend = packages;
|
||||
set req.backend_hint = packages;
|
||||
}
|
||||
if (req.url ~ "^/tagger/") {
|
||||
set req.backend = tagger;
|
||||
set req.backend_hint = tagger;
|
||||
}
|
||||
if (req.url ~ "^/calendar") {
|
||||
set req.backend = fedocal;
|
||||
set req.backend_hint = fedocal;
|
||||
}
|
||||
if (req.url ~ "^/kerneltest") {
|
||||
set req.backend = kerneltest;
|
||||
set req.backend_hint = kerneltest;
|
||||
}
|
||||
if (req.http.X-Forwarded-Server ~ "^paste.fedoraproject.org") {
|
||||
set req.backend = paste;
|
||||
set req.backend_hint = paste;
|
||||
}
|
||||
if (req.http.X-Forwarded-Server ~ "^ask.fedoraproject.org") {
|
||||
set req.backend = askbot;
|
||||
set req.backend_hint = askbot;
|
||||
if (req.url ~ "^/m/") {
|
||||
unset req.http.cookie;
|
||||
set req.url = regsub(req.url, "\?.*", "");
|
||||
|
@ -209,7 +201,7 @@ sub vcl_recv {
|
|||
}
|
||||
if (req.http.X-Forwarded-Server ~ "^qa.fedoraproject.org") {
|
||||
if (req.url ~ "^/blockerbugs") {
|
||||
set req.backend = blockerbugs;
|
||||
set req.backend_hint = blockerbugs;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -219,28 +211,28 @@ sub vcl_recv {
|
|||
}
|
||||
|
||||
# Force lookup if the request is a no-cache request from the client.
|
||||
if (req.http.Cache-Control ~ "no-cache") {
|
||||
purge_url(req.url);
|
||||
}
|
||||
if (req.http.Accept-Encoding) {
|
||||
if (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|tbz|mp3|ogg)$") {
|
||||
# No point in compressing these
|
||||
remove req.http.Accept-Encoding;
|
||||
} elsif (req.http.Accept-Encoding ~ "gzip") {
|
||||
# This is currently a bug with ipv6, so we need to nuke it.
|
||||
remove req.http.Accept-Encoding;
|
||||
} elsif (req.http.Accept-Encoding ~ "deflate") {
|
||||
set req.http.Accept-Encoding = "deflate";
|
||||
} else {
|
||||
# unknown algorithm
|
||||
remove req.http.Accept-Encoding;
|
||||
}
|
||||
}
|
||||
# if (req.http.Cache-Control ~ "no-cache") {
|
||||
# purge_url(req.url);
|
||||
# }
|
||||
# if (req.http.Accept-Encoding) {
|
||||
# if (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|tbz|mp3|ogg)$") {
|
||||
# # No point in compressing these
|
||||
# remove req.http.Accept-Encoding;
|
||||
# } elsif (req.http.Accept-Encoding ~ "gzip") {
|
||||
# # This is currently a bug with ipv6, so we need to nuke it.
|
||||
# remove req.http.Accept-Encoding;
|
||||
# } elsif (req.http.Accept-Encoding ~ "deflate") {
|
||||
# set req.http.Accept-Encoding = "deflate";
|
||||
# } else {
|
||||
# # unknown algorithm
|
||||
# remove req.http.Accept-Encoding;
|
||||
# }
|
||||
# }
|
||||
}
|
||||
|
||||
# When requesting application icons, don't allow cherrypy to set cookies
|
||||
sub vcl_fetch {
|
||||
if (req.url ~ "^/pkgdb/appicon/show/") {
|
||||
unset beresp.http.set-cookie;
|
||||
}
|
||||
}
|
||||
#sub vcl_backend_fetch {
|
||||
# if (req.url ~ "^/pkgdb/appicon/show/") {
|
||||
# unset beresp.http.set-cookie;
|
||||
# }
|
||||
#}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue