Назад | Перейти на главную страницу

Varnish кеш с файлами NGINX, не обновляющими WordPress

Кажется, что Varnish отсутствует или неправильно проверяет кеш. Когда я пытаюсь очистить кеш, я получаю сообщение 200 OK. Кэш успешно очищен, но моя страница не обновляется. Я просто вношу изменения HTML в свой footer.php (используя WordPress), но они не отображаются. Я проверил свои заголовки, и они следующие:

HTTP/1.1 200 OK
Server: nginx/1.6.0
Content-Type: text/html
Last-Modified: Wed, 23 Apr 2014 18:47:17 GMT
ETag: "53580ab5-2"
Content-Length: 2
Accept-Ranges: bytes
Date: Fri, 10 Oct 2014 15:53:28 GMT
X-Varnish: 21166333
Age: 0
Via: 1.1 varnish
Connection: keep-alive

«Идентификатор запроса, заполнившего кеш» отсутствует в заголовке X-Varnish.

Итак, я проверил заголовки, запустив команду прямо со своего VPS, на котором размещен мой веб-сайт, и, похоже, все работает нормально:

HTTP/1.1 200 OK
Server: nginx/1.6.0
Content-Type: text/html; charset=UTF-8
Vary: Accept-Encoding
X-Powered-By: PHP/5.4.33
X-Pingback: http://example.com/xmlrpc.php
Date: Fri, 10 Oct 2014 15:52:56 GMT
X-Varnish: 21166331 21166330
Age: 21
Via: 1.1 varnish
Connection: keep-alive

Вот мой файл VCL:

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

acl purge {
        "localhost";
        "127.0.0.1";
        "173.10.93.222";
}
sub vcl_recv {

if (req.request == "BAN") {
    error 200 "Cached Cleared Successfully.";
}

        if (req.request == "PURGE") {
                if (!client.ip ~ purge) {
                        error 405 "Not allowed.";
                }
                return(lookup);
        }
if (req.url ~ "^/$") {
               unset req.http.cookie;
            }
}
sub vcl_hit {
        if (req.request == "PURGE") {
                set obj.ttl = 0s;
                error 200 "Purged.";
        }
}
sub vcl_miss {
        if (req.request == "PURGE") {
                error 404 "Not in cache.";
        }
if (!(req.url ~ "wp-(login|admin)")) {
                        unset req.http.cookie;
                }
    if (req.url ~ "^/[^?]+.(jpeg|jpg|png|gif|ico|js|css|txt|gz|zip|lzma|bz2|tgz|tbz|html|htm)(\?.|)$") {
       unset req.http.cookie;
       set req.url = regsub(req.url, "\?.$", "");
    }
    if (req.url ~ "^/$") {
       unset req.http.cookie;
    }
}
sub vcl_fetch {
        if (req.url ~ "^/$") {
                unset beresp.http.set-cookie;
        }
        if (!(req.url ~ "wp-(login|admin)")) {
                unset beresp.http.set-cookie;
        }
}

Когда я захожу на сайт www.isvarnishworking.com, я получаю следующее:

Да! Вроде, как бы, что-то вроде! Похоже, что Varnish отвечает по этому URL-адресу, но заголовок «Возраст» меньше 1.

Некоторая помощь будет признательна, я чувствую, что это что-то простое. Я должен отметить, что это работает на сервере NGINX.

Мой style.css, казалось, обновлялся нормально, просто DOM страницы не обновляется.

Неважно, похоже, что Varnish работает после начальной загрузки страницы, но мои обновленные файлы не отображались из-за APC.