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

Лак Не работает

Я также установил лак на свой сервер, но производительность не изменилась. http://www.webpagetest.org/ говорит, что система кеширования не включена на вашем сервере, я использую конфигурацию varnish по умолчанию, это мой заголовок:

status: HTTP/1.1 200 OK
Server: Apache  
X-Powered-By:   PHP/5.3.29  
P3P:    CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"  
Expires:    Mon, 1 Jan 2001 00:00:00 GMT    
Cache-Control:  no-store, no-cache, must-revalidate, post-check=0, pre-check=0  
Pragma: no-cache    
Set-Cookie: 73ab794b527721e09d2124da5815cf79=2f8ca1fed15724e75f5bf3824a26a9cd; path=/; HttpOnly 
Last-Modified:  Thu, 25 Sep 2014 08:28:53 GMT   
Content-Type:   text/html; charset=utf-8    
Content-Length: 77965   
Accept-Ranges:  bytes   
Date:   Thu, 25 Sep 2014 08:28:53 GMT   
X-Varnish:  1531877383  
Age:    0   
Via:    1.1 varnish 
Connection: close

Я посмотрю, смогу ли я помочь в отношении каких-либо будущих взглядов на эту проблему. Есть ряд вещей, из-за которых Varnish не кэширует контент. Вам нужно будет проработать все из них и, надеюсь, иметь хорошую настройку ведения журнала / метрик, чтобы вы могли определить, какие страницы / ресурсы не отвечают из кеша.

Заголовки управления кешем были:

status: HTTP/1.1 200 OK
Server: Apache  
X-Powered-By:   PHP/5.3.29  
P3P:    CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"  
Expires:    Mon, 1 Jan 2001 00:00:00 GMT    
Cache-Control:  no-store, no-cache, must-revalidate, post-check=0, pre-check=0  
Pragma: no-cache    
Set-Cookie: 73ab794b527721e09d2124da5815cf79=2f8ca1fed15724e75f5bf3824a26a9cd; path=/; HttpOnly 
Last-Modified:  Thu, 25 Sep 2014 08:28:53 GMT   
Content-Type:   text/html; charset=utf-8    
Content-Length: 77965   
Accept-Ranges:  bytes   
Date:   Thu, 25 Sep 2014 08:28:53 GMT   
X-Varnish:  1531877383  
Age:    0   
Via:    1.1 varnish 
Connection: close

Чтобы этот конкретный запрос был кэшируемым, вам необходимо исправить:

  • Expires: Mon, 1 Jan 2001 00:00:00 GMT

    Это говорит Varnish не кэшировать

  • Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

    Это говорит Varnish не кэшировать (Varnish 4+, Varnish 3 все равно будет кэшировать это)

  • Set-Cookie: 73ab794b527721e09d2124da5815cf79=2f8ca1fed15724e75f5bf3824a26a9cd; path=/; HttpOnly

    Varnish не будет кэшировать ответ с помощью Set-Cookie

Для обработки метрик / ведения журнала, чтобы вы могли видеть все запросы, которые я написал о параметрах настройки Varnish: https://www.section.io/varnish-install-quick-and-detailed/

Ваша проблема здесь:

Cache-Control: без хранения, без кеширования ...

В принципе:

  • следующий поиск не выполняется (Varnish не сохраняет ответ в кеше)
  • браузеры не будут кэшировать ответ, поэтому любой F5 снова запросит ресурс с вашего сервера.

Используйте приведенное ниже в своем VCL

sub vcl_fetch {  

remove beresp.http.Cache-Control;

  set beresp.http.Cache-Control = "public";

}

У меня была эта проблема на сервере ubuntu с PHP-FPM:

Expires:    Mon, 1 Jan 2001 00:00:00 GMT    
Cache-Control:  no-store, no-cache, must-revalidate, post-check=0, pre-check=0  
Pragma: no-cache

Проблема заключалась в session.cache_limiter в /etc/php/7.1/fpm/php.ini (PHP-FPM)

sed -i "s/session.cache_limiter = nocache/session.cache_limiter = ''/" /etc/php/7.1/fpm/php.ini

Другой проблемой, которую нужно было решить, была "SetCookie" для тестирования, используйте это:

vcl 4.0;

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

sub vcl_recv {
    unset req.http.cookie;
    return(hash);
}

sub vcl_backend_response {
    unset beresp.http.set-cookie;
    set beresp.ttl = 30m;
}

sub vcl_deliver {
}

Еще одна вещь, которую мне не хватало, это "a2enmod proxy_http"для ProxyPass в Apache2