2015-01-20 23:35:32 +00:00
|
|
|
vcl 4.0;
|
|
|
|
|
|
|
|
import directors;
|
2014-12-08 00:09:36 +00:00
|
|
|
|
|
|
|
backend wiki {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10001";
|
|
|
|
.first_byte_timeout = 120s;
|
|
|
|
}
|
|
|
|
|
|
|
|
backend mirrorlists {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10002";
|
|
|
|
}
|
|
|
|
|
|
|
|
backend pkgdb {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10003";
|
|
|
|
.first_byte_timeout = 160s;
|
|
|
|
}
|
|
|
|
|
2015-01-20 23:35:32 +00:00
|
|
|
backend fas01 {
|
|
|
|
.host = "fas01";
|
|
|
|
.port = "http";
|
|
|
|
.probe = {
|
|
|
|
.url = "/accounts/";
|
|
|
|
.interval = 5s;
|
|
|
|
.timeout = 5s;
|
|
|
|
.window = 5;
|
|
|
|
.threshold = 5;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
backend fas02 {
|
|
|
|
.host = "fas02";
|
|
|
|
.port = "http";
|
|
|
|
.probe = {
|
|
|
|
.url = "/accounts/";
|
|
|
|
.interval = 5s;
|
|
|
|
.timeout = 5s;
|
|
|
|
.window = 5;
|
|
|
|
.threshold = 5;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
backend fas03 {
|
|
|
|
.host = "fas03";
|
|
|
|
.port = "http";
|
|
|
|
.probe = {
|
|
|
|
.url = "/accounts/";
|
|
|
|
.interval = 5s;
|
|
|
|
.timeout = 5s;
|
|
|
|
.window = 5;
|
|
|
|
.threshold = 5;
|
|
|
|
}
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
|
2015-01-20 23:35:32 +00:00
|
|
|
sub vcl_init {
|
|
|
|
new fas = directors.round_robin();
|
|
|
|
fas.add_backend(fas01);
|
|
|
|
fas.add_backend(fas02);
|
|
|
|
fas.add_backend(fas03);
|
|
|
|
}
|
2014-12-08 00:09:36 +00:00
|
|
|
|
|
|
|
backend voting {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10007";
|
2015-01-20 23:35:32 +00:00
|
|
|
.first_byte_timeout = 160s;
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
backend mirrormanager {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10008";
|
|
|
|
}
|
|
|
|
|
|
|
|
backend bodhi {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10009";
|
|
|
|
}
|
|
|
|
|
|
|
|
backend freemedia {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10011";
|
|
|
|
}
|
|
|
|
|
|
|
|
backend packages {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10016";
|
|
|
|
}
|
|
|
|
|
|
|
|
backend tagger {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10017";
|
|
|
|
}
|
|
|
|
|
|
|
|
backend askbot {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10021";
|
|
|
|
}
|
|
|
|
|
|
|
|
backend blockerbugs {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10022";
|
|
|
|
}
|
|
|
|
|
|
|
|
backend fedocal {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10023";
|
|
|
|
}
|
|
|
|
|
|
|
|
backend kerneltest {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10038";
|
|
|
|
}
|
|
|
|
|
|
|
|
backend paste {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10027";
|
|
|
|
}
|
|
|
|
|
2015-01-20 23:35:32 +00:00
|
|
|
backend mirrormanager2 {
|
|
|
|
.host = "localhost";
|
|
|
|
.port = "10039";
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#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";
|
|
|
|
#}
|
2014-12-08 00:09:36 +00:00
|
|
|
|
|
|
|
sub vcl_recv {
|
2015-01-20 23:35:32 +00:00
|
|
|
# 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);
|
|
|
|
# }
|
2014-12-08 00:09:36 +00:00
|
|
|
|
|
|
|
if (req.url ~ "^/wiki/") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = wiki;
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
if (req.url ~ "^/w/") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = wiki;
|
2015-01-21 21:18:54 +00:00
|
|
|
if (req.url ~ "^/w/skins/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
if (req.url ~ "^/mirrorlist/") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = mirrorlists;
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
if (req.url ~ "^/pkgdb") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = pkgdb;
|
2015-01-21 21:18:54 +00:00
|
|
|
if (req.url ~ "^/pkgdb/static/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
if (req.url ~ "^/accounts/") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = fas.backend();
|
2015-01-21 21:18:54 +00:00
|
|
|
if (req.url ~ "^/accounts/static/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
if (req.url ~ "^/voting/") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = voting;
|
2015-01-21 21:18:54 +00:00
|
|
|
if (req.url ~ "^/voting/static/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
if (req.url ~ "^/mirrormanager/") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = mirrormanager;
|
2015-01-21 21:18:54 +00:00
|
|
|
if (req.url ~ "^/mirrormanager/static/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
2015-01-20 23:35:32 +00:00
|
|
|
}
|
|
|
|
if (req.url ~ "^/mirrormanager2/") {
|
|
|
|
set req.backend_hint = mirrormanager2;
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
if (req.url ~ "^/updates/") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = bodhi;
|
2015-01-21 21:18:54 +00:00
|
|
|
if (req.url ~ "^/updates/static/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
if (req.url ~ "^/freemedia/") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = freemedia;
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
if (req.url ~ "^/packages/") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = packages;
|
2015-01-21 21:18:54 +00:00
|
|
|
if (req.url ~ "^/packages/_res/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
|
|
|
if (req.url ~ "^/packages/css/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
if (req.url ~ "^/tagger/") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = tagger;
|
2015-01-21 21:18:54 +00:00
|
|
|
if (req.url ~ "^/tagger/ui/static/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
if (req.url ~ "^/calendar") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = fedocal;
|
2015-01-21 21:18:54 +00:00
|
|
|
if (req.url ~ "^/calendar/static/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
if (req.url ~ "^/kerneltest") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = kerneltest;
|
2015-01-21 21:18:54 +00:00
|
|
|
if (req.url ~ "^/kerneltest/static/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
if (req.http.X-Forwarded-Server ~ "^paste.fedoraproject.org") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = paste;
|
2015-01-21 21:18:54 +00:00
|
|
|
if (req.url ~ "^/skins/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
|
|
|
if (req.url ~ "^/addons/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
if (req.http.X-Forwarded-Server ~ "^ask.fedoraproject.org") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = askbot;
|
2014-12-08 00:09:36 +00:00
|
|
|
if (req.url ~ "^/m/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (req.http.X-Forwarded-Server ~ "^qa.fedoraproject.org") {
|
|
|
|
if (req.url ~ "^/blockerbugs") {
|
2015-01-20 23:35:32 +00:00
|
|
|
set req.backend_hint = blockerbugs;
|
2015-01-21 21:18:54 +00:00
|
|
|
if (req.url ~ "^/blockerbugs/static/") {
|
|
|
|
unset req.http.cookie;
|
|
|
|
set req.url = regsub(req.url, "\?.*", "");
|
|
|
|
}
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
# Pass any requests with the "If-None-Match" header directly.
|
|
|
|
if (req.http.If-None-Match) {
|
|
|
|
return (pass);
|
|
|
|
}
|
|
|
|
|
|
|
|
# Force lookup if the request is a no-cache request from the client.
|
2015-01-20 23:35:32 +00:00
|
|
|
# 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;
|
|
|
|
# }
|
|
|
|
# }
|
2014-12-08 00:09:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# When requesting application icons, don't allow cherrypy to set cookies
|
2015-01-20 23:35:32 +00:00
|
|
|
#sub vcl_backend_fetch {
|
|
|
|
# if (req.url ~ "^/pkgdb/appicon/show/") {
|
|
|
|
# unset beresp.http.set-cookie;
|
|
|
|
# }
|
|
|
|
#}
|