<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>I am running Apache2 mod.fcgid with Varnish 3 as a cache.  I am getting around 50% cache misses.   I would appreciate any help or hints on what I am doing wrong with my default.vcl.  <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><img width=497 height=304 id="Picture_x0020_1" src="cid:image001.png@01CE66D0.018E0B40" alt="cid:image001.png@01CE654D.EC949250"><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Here is my default.vcl <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'># This is a basic VCL configuration file for varnish.  See the vcl(7)<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'># man page for details on VCL syntax and semantics.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>#<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'># TODO: Update internal subnet ACL and security.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'># Define the internal network subnet.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'># These are used below to allow internal access to certain files while not<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'># allowing access from the public internet.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'># acl internal {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>#  "192.10.0.0"/24;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'># }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'># Default backend definition.  Set this to point to your content<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'># server.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>#<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>backend default {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>.host = "127.0.0.1";<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>.port = "8080";<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>.connect_timeout = 600s;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>.first_byte_timeout = 600s;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>.between_bytes_timeout = 600s;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>.max_connections = 800;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>}<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'>acl purge {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  "localhost";<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  "127.0.0.1";<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>}<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'># Respond to incoming requests.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>sub vcl_recv {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                # Use anonymous, cached pages if all backends are down.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  if (!req.backend.healthy) {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    unset req.http.Cookie;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # Allow the backend to serve up stale content if it is responding slowly.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  set req.grace = 6h;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  if (req.restarts == 0) {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  if (req.http.X-Forwarded-For) {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  } else {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    set req.http.X-Forwarded-For = client.ip;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>}<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>   <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'># Check the incoming request type is "PURGE", not "GET" or "POST"<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>if (req.request == "PURGE") {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # Check if the ip coresponds with the acl purge<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  if (!client.ip ~ purge) {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # Return error code 405 (Forbidden) when not<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    error 405 "Not allowed.";<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  return (lookup);<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>}<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>   <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # Pipe these paths directly to Apache for streaming.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  #if (req.url ~ "^/admin/content/backup_migrate/export") {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  #  return (pipe);<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  #}<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  #req.url ~ "^.*/api/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # Do not cache these paths.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  if (req.url ~ "^/status\.php$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                 req.url ~ "^/update\.php$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                req.url ~ "^/admin$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                req.url ~ "^/admin/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in;text-indent:.5in'>req.url ~ "^.*/apidev/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                req.url ~ "^/flag/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                req.url ~ "^.*/munin/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/server-status/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/store_us/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/store_us_test/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/store_ca/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/store_uk/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/store_de/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/store_fr/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/store_it/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/store_cn/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/store_es/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/store_jp/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                 req.url ~ "^.*/ajax/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/dev.serviidb.com/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/user/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/cacti/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/admin/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/install/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/serviioweb/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                 req.url ~ "^.*/mediabrowser/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                 req.url ~ "^.*/phpmyadmin/.*$" ||<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                  req.url ~ "^.*/xataface/.*$") {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>       return (pass);<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'>  # Do not allow outside access to cron.php or install.php.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  #if (req.url ~ "^/(cron|install)\.php$" && !client.ip ~ internal) {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    # Have Varnish throw the error directly.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  #  error 404 "Page not found.";<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    # Use a custom error page that you've defined in Drupal at the path "404".<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    # set req.url = "/404";<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  #}<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'>  # Always cache the following file types for all users. This list of extensions<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # appears twice, once here and again in vcl_fetch so make sure you edit both<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # and keep them equal.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  if (req.url ~ "(?i)\.(pdf|asc|dat|txt|doc|xls|ppt|tgz|csv|png|gif|jpeg|jpg|ico|swf|css|js)(\?.*)?$") {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    unset req.http.Cookie;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'> # Remove all cookies that Drupal doesn't need to know about. We explicitly <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # list the ones that Drupal does need, the SESS and NO_CACHE. If, after <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # running this code we find that either of these two cookies remains, we <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # will pass as the page cannot be cached.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  if (req.http.Cookie) {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    # 1. Append a semi-colon to the front of the cookie string.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    # 2. Remove all spaces that appear after semi-colons.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    # 3. Match the cookies we want to keep, adding the space we removed <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    #    previously back. (\1) is first matching group in the regsuball.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    # 4. Remove all other cookies, identifying them by the fact that they have<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    #    no space after the preceding semi-colon.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    # 5. Remove all spaces and semi-colons from the beginning and end of the <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    #    cookie string. <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    set req.http.Cookie = ";" + req.http.Cookie;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    set req.http.Cookie = regsuball(req.http.Cookie, "; +", ";");    <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    set req.http.Cookie = regsuball(req.http.Cookie, ";(SESS[a-z0-9]+|SSESS[a-z0-9]+|NO_CACHE)=", "; \1=");<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    set req.http.Cookie = regsuball(req.http.Cookie, ";[^ ][^;]*", "");<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    set req.http.Cookie = regsuball(req.http.Cookie, "^[; ]+|[; ]+$", "");<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'>    if (req.http.Cookie == "") {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>      # If there are no remaining cookies, remove the cookie header. If there<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>      # aren't any cookie headers, Varnish's default behavior will be to cache<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>      # the page.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>      unset req.http.Cookie;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    else {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>      # If there is any cookies left (a session or NO_CACHE cookie), do not<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>      # cache the page. Pass it on to Apache directly.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>      return (pass);<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'>}<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'># Set a header to track a cache HIT/MISS.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>sub vcl_deliver {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  if (obj.hits > 0) {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    set resp.http.X-Varnish-Cache = "HIT";<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  else {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    set resp.http.X-Varnish-Cache = "MISS";<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>}<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'># Code determining what to do when serving items from the Apache servers.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'># beresp == Back-end response from the web server.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>sub vcl_fetch {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # We need this to cache 404s, 301s, 500s. Otherwise, depending on backend but <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # definitely in Drupal's case these responses are not cacheable by default.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  if (beresp.status == 404 || beresp.status == 301 || beresp.status == 500) {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    set beresp.ttl = 10m;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # this section of code sets the API to return a response code of 200 not 302.  DO NOT MODIFY OR DELETE COULD MESS UP CLIENTS.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    if(beresp.status == 302 && !beresp.http.Location){<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    set beresp.status = 200; <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    set beresp.response = "OK";<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'>  # Don't allow static files to set cookies. <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # (?i) denotes case insensitive in PCRE (perl compatible regular expressions).<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # This list of extensions appears twice, once here and again in vcl_recv so <o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # make sure you edit both and keep them equal.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  if (req.url ~ "(?i)\.(pdf|asc|dat|txt|doc|xls|ppt|tgz|csv|png|gif|jpeg|jpg|ico|swf|css|js)(\?.*)?$") {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    unset beresp.http.set-cookie;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'>  # Allow items to be stale if needed.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  set beresp.grace = 6h;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>}<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'>sub vcl_hit {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>        if (req.request == "PURGE") {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                purge;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                error 200 "Purged.";<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>        }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>}<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'>sub vcl_miss {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>        if (req.request == "PURGE") {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                purge;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>                error 200 "Purged.";<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>        }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>}<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'># In the event of an error, show friendlier messages.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>sub vcl_error {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  # Redirect to some other URL in the case of a homepage failure.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  #if (req.url ~ "^/?$") {<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  #  set obj.status = 302;<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  #  set obj.http.Location = "<a href="http://backup.example.com/">http://backup.example.com/</a>";<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  #}<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'>  # Otherwise redirect to the homepage, which will likely be in the cache.<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  set obj.http.Content-Type = "text/html; charset=utf-8";<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  synthetic {"<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><html><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><head><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  <title>Page Unavailable</title><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  <style><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    body { background: #303030; text-align: center; color: white; }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    #page { border: 1px solid #CCC; width: 500px; margin: 100px auto 0; padding: 30px; background: #323232; }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    a, a:link, a:visited { color: #CCC; }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    .error { color: #222; }<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  </style><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'></head><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><body onload="setTimeout(function() { window.location = '/' }, 5000)"><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  <div id="page"><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    <h1 class="title">Page Unavailable</h1><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    <p>The page you requested is temporarily unavailable.</p><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    <p>We're redirecting you to the <a href="/">homepage</a> in 5 seconds.</p><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>    <div class="error">(Error "} + obj.status + " " + obj.response + {")</div><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  </div><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'></body><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'></html><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>"};<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>  return (deliver);<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>}<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Requests.log<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/api/media.json?client=ServiiDroid&num=0 miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/api/plugin.json?client=ServiiDroid&num=0 miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/hulu.png miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/comedycentral.jpg miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/CBS_0.jpg miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/abc_iview.jpg miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/4OD-logo.jpg miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sl/taxonomy/term/116/all miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ru/node/317?language=de miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sl/taxonomy/term/130/all miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/plugin-api-name/youtubetop100 miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/da/content/abc-iview-australia?language=en miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sl/taxonomy/term/130/all miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ru/content/haha-sport-baseball?language=de miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/?q=node/add miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/plugin-api-name/youtubetop100 miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/node/add miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/user/register miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/user/register miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ja/comment/7?language=ja miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/itv.jpg miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/syfy.jpg miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sl/taxonomy/term/130/all miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/coco.jpg miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/css/css_fUXc0IbfJFVGhZ_CC63oYAw5rSt49epRhzcGmscaISU.css hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/css/css_SKdZ0BB5XafXDbZJFEkdKM2wno6BIT2kaNm5ZvTeTgA.css miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/css/css_KhS183x7gviqG0CuFRJJAOmVB1hHNwf9ofpIxQ9WMmE.css hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/eclp_3.png hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/all/modules/addtoany/images/share_save_171_16.png hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/css/css_5_EBsvYf_U3gqgv1Idal1sImw7zcXB1kaIR6NOugp8o.css hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/bbciplayer.png miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/misc/feed.png hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/castalba.jpg miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/skysportsplus.png miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/hahasport.png miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/coolsporttv.png miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/sopcast.jpg miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/stopstream_0.png miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ar/ar/content/data/view/api_access?client_op=contains&client=&page=16 miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/dailymotion.jpg miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/twitch.png miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/Ustream.jpg miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/vimeo.jpg miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/YouTube.jpg miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/canalplus.jpg miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sites/default/files/m6groupe.png miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/plugin-api-name/youtubetop100 miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/zh-hans/node/199?language=en miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/zh-hans/node/863?language=en miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/api/install?client=ServiiDroid&nid=175.0 miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sl/content/pilgrims-death miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/content/how-cook-heston?language=ru miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/plugin-api-name/youtubetop100 miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sl/node/239 miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/da/edit-plugin miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/plugin-api-name/youtubetop100 miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/api/install?client=ServiiDroid&nid=771.0 miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/es/media-type/video?language=en miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/es/media-type/video?language=en miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/plugin-api-name/youtubetop100 miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/unpublished-forum miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/robots.txt hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/ hit<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/unpublished-forum miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/content/pokemon miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/content/conan-celebrity-interviews?language=es miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/sl/region/uk?language=en miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/unpublished-forum miss<o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'>/batch?op=start&id=1516 miss<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>