Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
[email protected] webmail now available. Want one? Go here.
Cannot use outlook/hotmail/live here to register as they blocking our mail servers. #microsoftdeez
Obey the Epel!

Paste

Pasted as Bash by Sparsh ( 13 years ago )
#-e 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.
#
#backend default {
#.host = "192.168.133.42";
#.port = "80";
#}

backend dev2 {
  .host = "192.168.152.81";
  .port = "http";
.first_byte_timeout = 1s;  
.probe = {
         .url = "/server-status";
         .interval = 5s;
         .timeout = 1 s;
         .window = 5;
         .threshold = 3;
    }
  }
backend dev3 {
   .host = "192.168.134.92";
   .port = "http";
.first_byte_timeout = 1s;
   .probe = {
         .url = "/server-status";
         .interval = 5s;
         .timeout = 1 s;
         .window = 5;
         .threshold = 3;
   }
 }
backend dev4 {
   .host = "192.168.133.42";
   .port = "http";
.first_byte_timeout = 1s;   
.probe = {
         .url = "/server-status";
         .interval = 5s;
         .timeout = 1 s;
         .window = 5;
         .threshold = 3;
   }
 }
backend dev5 {
   .host = "192.168.133.14";
   .port = "http";
.first_byte_timeout = 1s;   
.probe = {
         .url = "/server-status";
         .interval = 5s;
         .timeout = 1 s;
         .window = 5;
         .threshold = 3;
   }
 }
backend dev6 {
   .host = "192.168.134.199";
   .port = "http";
.first_byte_timeout = 1s;   
.probe = {
         .url = "/server-status";
         .interval = 5s;
         .timeout = 1 s;
         .window = 5;
         .threshold = 3;
   }
 }

director www_director round-robin {
    { .backend = dev2; }
    { .backend = dev3; }
    { .backend = dev4; }
    { .backend = dev5; }
    { .backend = dev6; }
}

#
#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.
#
sub vcl_recv {
 
 if(req.url !~ "^/deploy/js_visitor_settings.php") {
  return(pass);
 }
 set req.backend = www_director;
 set req.url = regsub(req.url, "random\=.*", "");
 #unset req.http.cookie;

        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;
                }
        }
#    if (req.request != "GET" &&
#      req.request != "HEAD" &&
#      req.request != "PUT" &&
#      req.request != "POST" &&
#      req.request != "TRACE" &&
#      req.request != "OPTIONS" &&
#      req.request != "DELETE") {
#        /* Non-RFC2616 or CONNECT which is weird. */
#        return (pipe);
#    }
#    if (req.request != "GET" && req.request != "HEAD") {
#        /* We only deal with GET and HEAD by default */
#        return (pass);
#    }
#    if (req.http.Authorization || req.http.Cookie) {
#        /* Not cacheable by default */
#        return (pass);
#    }
    return (lookup);
}
#
#sub vcl_pipe {
#    # Note that only the first request to the backend will have
#    # X-Forwarded-For set.  If you use X-Forwarded-For and want to
#    # have it set for all requests, make sure to have:
#    # set req.http.connection = "close";
#    # here.  It is not set by default as it might break some broken web
#    # applications, like IIS with NTLM authentication.
#    return (pipe);
#}
#
#sub vcl_pass {
#    return (pass);
#}
#
#sub vcl_hash {
#    set req.hash += req.url;
#    if (req.http.host) {
#        set req.hash += req.http.host;
#    } else {
#        set req.hash += server.ip;
#    }
#    return (hash);
#}
#
#sub vcl_hit {
#    if (!obj.cacheable) {
#        return (pass);
#    }
#    return (deliver);
#}
#
#sub vcl_miss {
#    return (fetch);
#}
#
sub vcl_fetch {

    if (beresp.http.Set-Cookie) {
        return (pass);
    }

# remove beresp.http.Set-Cookie;

 if (beresp.cacheable) {
  set beresp.ttl = 6h;
 }
#    if (!obj.cacheable) {
#        return (pass);
#    }
#    if (obj.http.Set-Cookie) {
#        return (pass);
#    }
#    set obj.prefetch =  -30s;
#    return (deliver);
}
#
sub vcl_deliver {
 if (obj.hits > 0) {
  set resp.http.X-Cache = "HIT"; 
  set resp.http.X-Cache-Hits = obj.hits;
 }
 else {
      set resp.http.X-Cache = "MISS"; 
 }

 set resp.http.Connection = "close";
 set resp.http.Cache-Control = "no-cache, no-store, max-age=0, must-revalidate";
 set resp.http.Pragma = "no-cache";
#    return (deliver);
}

 

Revise this Paste

Your Name: Code Language: