0

I am using:

  • NginX 1.10.2
  • Varnish 4.1
  • Drupal 7 with the following modules
    • Expire (Set to external.)
    • Varnish (Set to selective.)
    • Purge (Set to 127.0.0.1:80.)

The settings.php file contains the following lines.

// Configuration when using varnish and expire module (selective mode)
$conf['cache_backends'][] = 'sites/all/modules/varnish/varnish.cache.inc';
$conf['cache_class_external_varnish_page'] = 'VarnishCache'; // This allows manual flushing of the cache
$conf['cache_class_cache_page'] = 'DrupalFakeCache';  // Turn off drupal page caching (varnish handles this!)
$conf['cache_lifetime'] = 0;
//$conf['page_cache_maximum_age'] = 21600;  // 6  hours
//$conf['page_cache_invoke_hooks'] = FALSE;

The output of varnishadm -T 127.0.0.1:6082 -S /etc/varnish/secret ban.list is the following.

Present bans:
1480690623.867808    21 -  req.http.host ~ metalfans.dev && req.url ~ ^/nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit$
1480690623.867018     0 -  req.http.host ~ metalfans.dev && req.url ~ ^/node/1723$|^/nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit$
1480690623.825829     0 -  req.http.host ~ metalfans.dev && req.url ~ ^/$|^/frontpage$|^/metalnieuws$|^/node/1723$|^/nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit$
1480690118.323817    29 -  req.http.host ~ metalfans.dev && req.url ~ ^/$|^/frontpage$|^/metalnieuws$|^/node/1722$|^/nieuws/1722/zoveel-kost-graspop-metal-meeting-2017$

The VCL file contains the following lines.

    # 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.
#
vcl 4.0;

backend default {
  .host = "127.0.0.1";
  .port = "8282";
}

acl purge {
  "localhost";
  "127.0.0.1";
}
# handles redirecting from http to https
sub vcl_synth {
  if (resp.status == 750) {
    set resp.status = 301;
    set resp.http.Location = req.http.x-redir;
    return(deliver);
  }
}

sub vcl_recv {
 # Do not cache these paths.
  if (req.url ~ "^/status\.php$" ||
      req.url ~ "^/update\.php" ||
      req.url ~ "^/install\.php" ||
      req.url ~ "^/apc\.php$" ||
      req.url ~ "^/admin" ||
      req.url ~ "^/admin/.*$" ||
      req.url ~ "^/user" ||
      req.url ~ "^/user/.*$" ||
      req.url ~ "^/users/.*$" ||
      req.url ~ "^/info/.*$" ||
      req.url ~ "^/flag/.*$" ||
      req.url ~ "^.*/ajax/.*$" ||
      req.url ~ "^.*/ahah/.*$" ||
      req.url ~ "^/system/files/.*$") {

    return (pass);
  }

if ( (req.http.host ~ "^(?i)metalfans.dev|test.be") && req.http.X-Forwarded-Proto !~ "(?i)https") {
  set req.http.x-redir = "https://" + req.http.host + req.url;
  return (synth(750, ""));
}


  # Always cache the following file types for all users. This list of extensions
  # appears twice, once here and again in vcl_fetch so make sure you edit both
  # and keep them equal.
  if (req.url ~ "(?i)\.(pdf|asc|dat|txt|doc|xls|ppt|tgz|csv|png|gif|jpeg|jpg|ico|swf|css|js)(\?.*)?$") {
    unset req.http.Cookie;
  }

  # Remove all cookies that Drupal doesn't need to know about. We explicitly
  # list the ones that Drupal does need, the SESS and NO_CACHE. If, after
  # running this code we find that either of these two cookies remains, we
  # will pass as the page cannot be cached.
  if (req.http.Cookie) {
    # 1. Append a semi-colon to the front of the cookie string.
    # 2. Remove all spaces that appear after semi-colons.
    # 3. Match the cookies we want to keep, adding the space we removed
    #    previously back. (\1) is first matching group in the regsuball.
    # 4. Remove all other cookies, identifying them by the fact that they have
    #    no space after the preceding semi-colon.
    # 5. Remove all spaces and semi-colons from the beginning and end of the
    #    cookie string.
    set req.http.Cookie = ";" + req.http.Cookie;
    set req.http.Cookie = regsuball(req.http.Cookie, "; +", ";");
    set req.http.Cookie = regsuball(req.http.Cookie, ";(SESS[a-z0-9]+|SSESS[a-z0-9]+|wcf_cookieHash=[a-z0-9]+|wcf_userID=[a-z0-9]+|NO_CACHE)=", "; \1=");
    set req.http.Cookie = regsuball(req.http.Cookie, ";[^ ][^;]*", "");
    set req.http.Cookie = regsuball(req.http.Cookie, "^[; ]+|[; ]+$", "");

    if (req.http.Cookie == "") {
      # If there are no remaining cookies, remove the cookie header. If there
      # aren't any cookie headers, Varnish's default behavior will be to cache
      # the page.
      unset req.http.Cookie;
    }
    else {
      # If there is any cookies left (a session or NO_CACHE cookie), do not
      # cache the page. Pass it on to Apache directly.
      return (pass);
    }
  }
}

sub vcl_deliver {
        if (obj.hits > 0) {
                set resp.http.X-Cache = "HIT";
        } else {
                set resp.http.X-Cache = "MISS";
        }
}
sub vcl_recv {
# Check the incoming request type is "PURGE", not "GET" or "POST".
  if (req.method == "PURGE") {
    # Check if the IP is allowed.
    if (!client.ip ~ purge) {
      # Return error code 405 (Forbidden) when not.
      return (synth(405, "Not allowed."));
    }
    return (purge);
  }
}

The other related issue I found is Configuring Varnish for Drupal with Proper Module Usage (Expiration Cache, Varnish, Purge, Memcache).

Yet, the page age doesn't change at all until the TTL has expired, which is set to about 5 minutes, while the minimum cache is set to "0"/none.

The watchdogs logs shows that the clearing is happening, so it must be on the Varnish side NginX doesn't do full page caching.

This is the Varnish/Drupal log.

    Varnish log:
*   << BeReq    >> 360553
    -   Begin          bereq 360552 pass
    -   Timestamp      Start: 1480696516.686305 0.000000 0.000000
    -   BereqMethod    POST
    -   BereqURL       /node/1723/edit?content_lock_token=i7EJ9zBOgYFwoo3oJo0Q2-8vJcxXIQHAS6rF_wpwu6w
    -   BereqProtocol  HTTP/1.0
    -   BereqHeader    X-Forwarded-Host: metalfans.dev
    -   BereqHeader    X-Real-IP: 192.168.0.142
    -   BereqHeader    X-Forwarded-Proto: https
    -   BereqHeader    X-Forwarded-Port: 443
    -   BereqHeader    X-Secure: on
    -   BereqHeader    Host: 127.0.0.1
    -   BereqHeader    Content-Length: 21671
    -   BereqHeader    user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
    -   BereqHeader    accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    -   BereqHeader    accept-language: en-US,en;q=0.5
    -   BereqHeader    accept-encoding: gzip, deflate, br
    -   BereqHeader    referer: https://metalfans.dev/node/1723/edit?content_lock_token=i7EJ9zBOgYFwoo3oJo0Q2-8vJcxXIQHAS6rF_wpwu6w
    -   BereqHeader    upgrade-insecure-requests: 1
    -   BereqHeader    content-type: application/x-www-form-urlencoded
    -   BereqHeader    X-Forwarded-For: 192.168.0.142, 127.0.0.1
    -   BereqHeader    Cookie: SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDicS4uGJKlilsFiybrpJ-lxhsIC48vs
    -   BereqHeader    X-Varnish: 360553
    -   VCL_call       BACKEND_FETCH
    -   VCL_return     fetch
    -   BackendOpen    24 861794af-024b-4385-9de4-2bffb4c51725.default 127.0.0.1 8282 127.0.0.1 45761
    -   BackendStart   127.0.0.1 8282
    -   Timestamp      Bereq: 1480696516.686349 0.000044 0.000044
    -   Timestamp      Beresp: 1480696518.436420 1.750116 1.750072
    -   BerespProtocol HTTP/1.1
    -   BerespStatus   302
    -   BerespReason   Moved Temporarily
    -   BerespHeader   Server: nginx
    -   BerespHeader   Date: Fri, 02 Dec 2016 16:35:18 GMT
    -   BerespHeader   Content-Type: text/html; charset=UTF-8
    -   BerespHeader   Connection: close
    -   BerespHeader   Expires: Sun, 19 Nov 1978 05:00:00 GMT
    -   BerespHeader   Cache-Control: no-cache, must-revalidate
    -   BerespHeader   X-Content-Type-Options: nosniff
    -   BerespHeader   Location: https://metalfans.dev/nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit
    -   TTL            RFC 0 10 -1 1480696518 1480696518 1480696518 280299600 0
    -   VCL_call       BACKEND_RESPONSE
    -   TTL            VCL 120 10 0 1480696518
    -   VCL_return     deliver
    -   Storage        malloc Transient
    -   ObjProtocol    HTTP/1.1
    -   ObjStatus      302
    -   ObjReason      Moved Temporarily
    -   ObjHeader      Server: nginx
    -   ObjHeader      Date: Fri, 02 Dec 2016 16:35:18 GMT
    -   ObjHeader      Content-Type: text/html; charset=UTF-8
    -   ObjHeader      Expires: Sun, 19 Nov 1978 05:00:00 GMT
    -   ObjHeader      Cache-Control: no-cache, must-revalidate
    -   ObjHeader      X-Content-Type-Options: nosniff
    -   ObjHeader      Location: https://metalfans.dev/nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit
    -   Fetch_Body     4 eof stream
    -   BackendClose   24 861794af-024b-4385-9de4-2bffb4c51725.default
    -   Timestamp      BerespBody: 1480696518.436477 1.750172 0.000056
    -   Length         0
    -   BereqAcct      911 21671 22582 354 0 354
    -   End

    *   << Request  >> 360552
    -   Begin          req 360551 rxreq
    -   Timestamp      Start: 1480696516.686255 0.000000 0.000000
    -   Timestamp      Req: 1480696516.686255 0.000000 0.000000
    -   ReqStart       127.0.0.1 44983
    -   ReqMethod      POST
    -   ReqURL         /node/1723/edit?content_lock_token=i7EJ9zBOgYFwoo3oJo0Q2-8vJcxXIQHAS6rF_wpwu6w
    -   ReqProtocol    HTTP/1.0
    -   ReqHeader      X-Forwarded-For: 192.168.0.142
    -   ReqHeader      X-Forwarded-Host: metalfans.dev
    -   ReqHeader      X-Real-IP: 192.168.0.142
    -   ReqHeader      X-Forwarded-Proto: https
    -   ReqHeader      X-Forwarded-Port: 443
    -   ReqHeader      X-Secure: on
    -   ReqHeader      Host: 127.0.0.1
    -   ReqHeader      Connection: close
    -   ReqHeader      Content-Length: 21671
    -   ReqHeader      user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
    -   ReqHeader      accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    -   ReqHeader      accept-language: en-US,en;q=0.5
    -   ReqHeader      accept-encoding: gzip, deflate, br
    -   ReqHeader      referer: https://metalfans.dev/node/1723/edit?content_lock_token=i7EJ9zBOgYFwoo3oJo0Q2-8vJcxXIQHAS6rF_wpwu6w
    -   ReqHeader      upgrade-insecure-requests: 1
    -   ReqHeader      content-type: application/x-www-form-urlencoded
    -   ReqHeader      cookie: _ga=GA1.2.2139442399.1477560769; Drupal.tableDrag.showWeight=0; DRUPAL_UID=1; DrupalModuleFilter=activeTab%3Dnew; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoIta
    -   ReqUnset       X-Forwarded-For: 192.168.0.142
    -   ReqHeader      X-Forwarded-For: 192.168.0.142, 127.0.0.1
    -   VCL_call       RECV
    -   ReqUnset       cookie: _ga=GA1.2.2139442399.1477560769; Drupal.tableDrag.showWeight=0; DRUPAL_UID=1; DrupalModuleFilter=activeTab%3Dnew; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoIta
    -   ReqHeader      Cookie: ;_ga=GA1.2.2139442399.1477560769; Drupal.tableDrag.showWeight=0; DRUPAL_UID=1; DrupalModuleFilter=activeTab%3Dnew; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoIt
    -   ReqUnset       Cookie: ;_ga=GA1.2.2139442399.1477560769; Drupal.tableDrag.showWeight=0; DRUPAL_UID=1; DrupalModuleFilter=activeTab%3Dnew; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoIt
    -   ReqHeader      Cookie: ;_ga=GA1.2.2139442399.1477560769;Drupal.tableDrag.showWeight=0;DRUPAL_UID=1;DrupalModuleFilter=activeTab%3Dnew;SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA;SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDicS
    -   ReqUnset       Cookie: ;_ga=GA1.2.2139442399.1477560769;Drupal.tableDrag.showWeight=0;DRUPAL_UID=1;DrupalModuleFilter=activeTab%3Dnew;SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA;SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDicS
    -   ReqHeader      Cookie: ;_ga=GA1.2.2139442399.1477560769;Drupal.tableDrag.showWeight=0;DRUPAL_UID=1;DrupalModuleFilter=activeTab%3Dnew; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDi
    -   ReqUnset       Cookie: ;_ga=GA1.2.2139442399.1477560769;Drupal.tableDrag.showWeight=0;DRUPAL_UID=1;DrupalModuleFilter=activeTab%3Dnew; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDi
    -   ReqHeader      Cookie: ; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDicS4uGJKlilsFiybrpJ-lxhsIC48vs
    -   ReqUnset       Cookie: ; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDicS4uGJKlilsFiybrpJ-lxhsIC48vs
    -   ReqHeader      Cookie: SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDicS4uGJKlilsFiybrpJ-lxhsIC48vs
    -   VCL_return     pass
    -   VCL_call       HASH
    -   VCL_return     lookup
    -   VCL_call       PASS
    -   VCL_return     fetch
    -   Link           bereq 360553 pass
    -   Timestamp      ReqBody: 1480696516.686347 0.000091 0.000091
    -   Timestamp      Fetch: 1480696518.436485 1.750230 1.750139
    -   RespProtocol   HTTP/1.1
    -   RespStatus     302
    -   RespReason     Moved Temporarily
    -   RespHeader     Server: nginx
    -   RespHeader     Date: Fri, 02 Dec 2016 16:35:18 GMT
    -   RespHeader     Content-Type: text/html; charset=UTF-8
    -   RespHeader     Expires: Sun, 19 Nov 1978 05:00:00 GMT
    -   RespHeader     Cache-Control: no-cache, must-revalidate
    -   RespHeader     X-Content-Type-Options: nosniff
    -   RespHeader     Location: https://metalfans.dev/nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit
    -   RespHeader     X-Varnish: 360552
    -   RespHeader     Age: 0
    -   RespHeader     Via: 1.1 varnish-v4
    -   VCL_call       DELIVER
    -   RespHeader     X-Cache: MISS
    -   VCL_return     deliver
    -   Timestamp      Process: 1480696518.436498 1.750243 0.000013
    -   RespHeader     Content-Length: 0
    -   Debug          "RES_MODE 2"
    -   RespHeader     Connection: close
    -   Timestamp      Resp: 1480696518.436509 1.750254 0.000011
    -   ReqAcct        1032 21671 22703 436 0 436
    -   End

    *   << Session  >> 360551
    -   Begin          sess 0 HTTP/1
    -   SessOpen       127.0.0.1 44983 :80 127.0.0.1 80 1480696516.686237 20
    -   Link           req 360552 rxreq
    -   SessClose      RESP_CLOSE 1.750
    -   End

    *   << BeReq    >> 163863
    -   Begin          bereq 163862 pass
    -   Timestamp      Start: 1480696518.438621 0.000000 0.000000
    -   BereqMethod    GET
    -   BereqURL       /nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit
    -   BereqProtocol  HTTP/1.0
    -   BereqHeader    X-Forwarded-Host: metalfans.dev
    -   BereqHeader    X-Real-IP: 192.168.0.142
    -   BereqHeader    X-Forwarded-Proto: https
    -   BereqHeader    X-Forwarded-Port: 443
    -   BereqHeader    X-Secure: on
    -   BereqHeader    Host: 127.0.0.1
    -   BereqHeader    user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
    -   BereqHeader    accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    -   BereqHeader    accept-language: en-US,en;q=0.5
    -   BereqHeader    accept-encoding: gzip, deflate, br
    -   BereqHeader    referer: https://metalfans.dev/node/1723/edit?content_lock_token=i7EJ9zBOgYFwoo3oJo0Q2-8vJcxXIQHAS6rF_wpwu6w
    -   BereqHeader    upgrade-insecure-requests: 1
    -   BereqHeader    X-Forwarded-For: 192.168.0.142, 127.0.0.1
    -   BereqHeader    Cookie: SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDicS4uGJKlilsFiybrpJ-lxhsIC48vs
    -   BereqHeader    X-Varnish: 163863
    -   VCL_call       BACKEND_FETCH
    -   VCL_return     fetch
    -   BackendOpen    24 861794af-024b-4385-9de4-2bffb4c51725.default 127.0.0.1 8282 127.0.0.1 45766
    -   BackendStart   127.0.0.1 8282
    -   Timestamp      Bereq: 1480696518.438658 0.000038 0.000038
    -   Timestamp      Beresp: 1480696519.142807 0.704186 0.704149
    -   BerespProtocol HTTP/1.1
    -   BerespStatus   200
    -   BerespReason   OK
    -   BerespHeader   Server: nginx
    -   BerespHeader   Date: Fri, 02 Dec 2016 16:35:19 GMT
    -   BerespHeader   Content-Type: text/html; charset=utf-8
    -   BerespHeader   Connection: close
    -   BerespHeader   Vary: Accept-Encoding
    -   BerespHeader   Expires: Sun, 19 Nov 1978 05:00:00 GMT
    -   BerespHeader   Cache-Control: no-cache, must-revalidate
    -   BerespHeader   X-Content-Type-Options: nosniff
    -   BerespHeader   Content-Language: nl
    -   BerespHeader   X-Frame-Options: SAMEORIGIN
    -   BerespHeader   X-Generator: Drupal 7 (http://drupal.org)
    -   BerespHeader   Link: ,,,,,,<https://metalfans.dev/nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit?amp>; rel="amphtml",<https://metalfans.dev/nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit>; rel="canonical",<https://metalfans.dev/node/1723>; r
    -   BerespHeader   Content-Encoding: gzip
    -   TTL            RFC 0 10 -1 1480696519 1480696519 1480696519 280299600 0
    -   VCL_call       BACKEND_RESPONSE
    -   TTL            VCL 120 10 0 1480696519
    -   VCL_return     deliver
    -   Storage        malloc Transient
    -   ObjProtocol    HTTP/1.1
    -   ObjStatus      200
    -   ObjReason      OK
    -   ObjHeader      Server: nginx
    -   ObjHeader      Date: Fri, 02 Dec 2016 16:35:19 GMT
    -   ObjHeader      Content-Type: text/html; charset=utf-8
    -   ObjHeader      Vary: Accept-Encoding
    -   ObjHeader      Expires: Sun, 19 Nov 1978 05:00:00 GMT
    -   ObjHeader      Cache-Control: no-cache, must-revalidate
    -   ObjHeader      X-Content-Type-Options: nosniff
    -   ObjHeader      Content-Language: nl
    -   ObjHeader      X-Frame-Options: SAMEORIGIN
    -   ObjHeader      X-Generator: Drupal 7 (http://drupal.org)
    -   ObjHeader      Link: ,,,,,,<https://metalfans.dev/nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit?amp>; rel="amphtml",<https://metalfans.dev/nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit>; rel="canonical",<https://metalfans.dev/node/1723>; r
    -   ObjHeader      Content-Encoding: gzip
    -   Fetch_Body     4 eof stream
    -   Gzip           u F - 50512 302363 80 212767 404025
    -   BackendClose   24 861794af-024b-4385-9de4-2bffb4c51725.default
    -   Timestamp      BerespBody: 1480696519.180351 0.741730 0.037544
    -   Length         50512
    -   BereqAcct      821 0 821 790 50512 51302
    -   End

    *   << Request  >> 163862
    -   Begin          req 163861 rxreq
    -   Timestamp      Start: 1480696518.438582 0.000000 0.000000
    -   Timestamp      Req: 1480696518.438582 0.000000 0.000000
    -   ReqStart       127.0.0.1 44988
    -   ReqMethod      GET
    -   ReqURL         /nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit
    -   ReqProtocol    HTTP/1.0
    -   ReqHeader      X-Forwarded-For: 192.168.0.142
    -   ReqHeader      X-Forwarded-Host: metalfans.dev
    -   ReqHeader      X-Real-IP: 192.168.0.142
    -   ReqHeader      X-Forwarded-Proto: https
    -   ReqHeader      X-Forwarded-Port: 443
    -   ReqHeader      X-Secure: on
    -   ReqHeader      Host: 127.0.0.1
    -   ReqHeader      Connection: close
    -   ReqHeader      user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
    -   ReqHeader      accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    -   ReqHeader      accept-language: en-US,en;q=0.5
    -   ReqHeader      accept-encoding: gzip, deflate, br
    -   ReqHeader      referer: https://metalfans.dev/node/1723/edit?content_lock_token=i7EJ9zBOgYFwoo3oJo0Q2-8vJcxXIQHAS6rF_wpwu6w
    -   ReqHeader      upgrade-insecure-requests: 1
    -   ReqHeader      cookie: _ga=GA1.2.2139442399.1477560769; Drupal.tableDrag.showWeight=0; DRUPAL_UID=1; DrupalModuleFilter=activeTab%3Dnew; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoIta
    -   ReqUnset       X-Forwarded-For: 192.168.0.142
    -   ReqHeader      X-Forwarded-For: 192.168.0.142, 127.0.0.1
    -   VCL_call       RECV
    -   ReqUnset       cookie: _ga=GA1.2.2139442399.1477560769; Drupal.tableDrag.showWeight=0; DRUPAL_UID=1; DrupalModuleFilter=activeTab%3Dnew; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoIta
    -   ReqHeader      Cookie: ;_ga=GA1.2.2139442399.1477560769; Drupal.tableDrag.showWeight=0; DRUPAL_UID=1; DrupalModuleFilter=activeTab%3Dnew; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoIt
    -   ReqUnset       Cookie: ;_ga=GA1.2.2139442399.1477560769; Drupal.tableDrag.showWeight=0; DRUPAL_UID=1; DrupalModuleFilter=activeTab%3Dnew; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoIt
    -   ReqHeader      Cookie: ;_ga=GA1.2.2139442399.1477560769;Drupal.tableDrag.showWeight=0;DRUPAL_UID=1;DrupalModuleFilter=activeTab%3Dnew;SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA;SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDicS
    -   ReqUnset       Cookie: ;_ga=GA1.2.2139442399.1477560769;Drupal.tableDrag.showWeight=0;DRUPAL_UID=1;DrupalModuleFilter=activeTab%3Dnew;SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA;SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDicS
    -   ReqHeader      Cookie: ;_ga=GA1.2.2139442399.1477560769;Drupal.tableDrag.showWeight=0;DRUPAL_UID=1;DrupalModuleFilter=activeTab%3Dnew; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDi
    -   ReqUnset       Cookie: ;_ga=GA1.2.2139442399.1477560769;Drupal.tableDrag.showWeight=0;DRUPAL_UID=1;DrupalModuleFilter=activeTab%3Dnew; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDi
    -   ReqHeader      Cookie: ; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDicS4uGJKlilsFiybrpJ-lxhsIC48vs
    -   ReqUnset       Cookie: ; SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDicS4uGJKlilsFiybrpJ-lxhsIC48vs
    -   ReqHeader      Cookie: SSESS66c4e60279a94b947645ab1ea38c2c77=IFnE4CiYlSSuvwUqH9PVCeMxat9fc-gllYz3uWNyuTA; SESS66c4e60279a94b947645ab1ea38c2c77=YwcVtmCMoItaDicS4uGJKlilsFiybrpJ-lxhsIC48vs
    -   VCL_return     pass
    -   VCL_call       HASH
    -   VCL_return     lookup
    -   VCL_call       PASS
    -   VCL_return     fetch
    -   Link           bereq 163863 pass
    -   Timestamp      Fetch: 1480696519.142865 0.704283 0.704283
    -   RespProtocol   HTTP/1.1
    -   RespStatus     200
    -   RespReason     OK
    -   RespHeader     Server: nginx
    -   RespHeader     Date: Fri, 02 Dec 2016 16:35:19 GMT
    -   RespHeader     Content-Type: text/html; charset=utf-8
    -   RespHeader     Vary: Accept-Encoding
    -   RespHeader     Expires: Sun, 19 Nov 1978 05:00:00 GMT
    -   RespHeader     Cache-Control: no-cache, must-revalidate
    -   RespHeader     X-Content-Type-Options: nosniff
    -   RespHeader     Content-Language: nl
    -   RespHeader     X-Frame-Options: SAMEORIGIN
    -   RespHeader     X-Generator: Drupal 7 (http://drupal.org)
    -   RespHeader     Link: ,,,,,,<https://metalfans.dev/nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit?amp>; rel="amphtml",<https://metalfans.dev/nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit>; rel="canonical",<https://metalfans.dev/node/1723>; r
    -   RespHeader     Content-Encoding: gzip
    -   RespHeader     X-Varnish: 163862
    -   RespHeader     Age: 0
    -   RespHeader     Via: 1.1 varnish-v4
    -   VCL_call       DELIVER
    -   RespHeader     X-Cache: MISS
    -   VCL_return     deliver
    -   Timestamp      Process: 1480696519.142896 0.704314 0.000031
    -   RespHeader     Accept-Ranges: bytes
    -   Debug          "RES_MODE 4"
    -   RespHeader     Connection: close
    -   Timestamp      Resp: 1480696519.180378 0.741796 0.037482
    -   ReqAcct        942 0 942 875 50512 51387
    -   End

    *   << Session  >> 163861
    -   Begin          sess 0 HTTP/1
    -   SessOpen       127.0.0.1 44988 :80 127.0.0.1 80 1480696518.438567 21
    -   Link           req 163862 rxreq
    -   SessClose      RESP_CLOSE 0.742
    -   End
----------------------------------------------------------------------------------------
Drupal expire log:
    Expiration was executed for the next URLs:

        URL:
        Wildcard: false
        Expired object: node
        --------
        URL: frontpage
        Wildcard: false
        Expired object: node
        --------
        URL: node/1533
        Wildcard: false
        Expired object: node
        --------
        URL: metalfestivals/hellfest-open-air-2017
        Wildcard: false
        Expired object: node
        --------
        URL: metalnieuws
        Wildcard: false
        Expired object: node
        --------
        URL: node/1723
        Wildcard: false
        Expired object: node
        --------
        URL: nieuws/1723/de-eerste-namen-voor-hellfest-2017-zijn-een-feit
        Wildcard: false
        Expired object: node
        --------
0

I found the problem. It seems that my self singed certificate causses issues for curl and since purge uses curl, it just can't make the connection because its not secure.

If you come across this issue use the following command:

curl --insecure -X PURGE https://domain.tld/myurltopurge/

Ad the following code in default.vcl:

sub vcl_hit {
        if (req.method == "PURGE") {
                return (synth(200, "Purged."));
        }
}

sub vcl_miss {
        if (req.method == "PURGE") {
                return (synth(200, "OK but nothing to purge - URL was not in cache"));
        }
}

The output should be like this:

    <!DOCTYPE html>
<html>
  <head>
    <title>200 Purged</title>
  </head>
  <body>
    <h1>Error 200 Purged</h1>
    <p>Purged</p>
    <h3>Guru Meditation:</h3>
    <p>XID: 98477</p>
    <hr>
    <p>Varnish cache server</p>
  </body>
</html>

Doing this does clear the cache..

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.