Я установил лак на свой сервер вместе с apache. Это сайт SSL. Поэтому я использую apache для завершения SSL с лаком. Проблема в том, что когда я использую команду curl -I, заголовки показывают, что возраст всегда больше 0. Тот же случай, когда я тестирую свой сайт с https://isvarnishworking.uk. Но когда я вижу заголовки в моем браузере, он всегда показывает возраст как 0. Я все перепробовал. Я даже пробовал это с сайтом только по http. По-прежнему в веб-браузере возраст отображается как 0

руководство, которое я использовал: https://bash-prompt.net/guides/apache-varnish/

Это заголовки

accept-ranges: bytes
access-control-allow-origin: *
age: 0
content-encoding: gzip
content-length: 7128
content-type: text/html; charset=UTF-8
date: Thu, 15 Aug 2019 05:37:53 GMT
last-modified: Thu, 15 Aug 2019 04:25:12 GMT
server: Apache/2.4.29 (Ubuntu)
status: 200
vary: X-Forwarded-Proto,Accept-Encoding
via: 1.1 varnish (Varnish/5.2)
x-varnish: 65690

РЕДАКТИРОВАТЬ: это заголовки, которые я получаю, когда использую curl -v 127.0.0.1:8080

Rebuilt URL to: 127.0.0.1:8080/
  Trying 127.0.0.1...
TCP_NODELAY set
Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
GET / HTTP/1.1
Host: 127.0.0.1:8080
User-Agent: curl/7.58.0
Accept: */*
HTTP/1.1 200 OK
Date: Thu, 15 Aug 2019 09:58:23 GMT
Server: Apache/2.4.29 (Ubuntu)
Link: ; rel="https://api.w.org/", https://arcadesite.io/>; rel=shortlink
Vary: Accept-Encoding
Access-Control-Allow-Origin: *
Content-Type: text/html; charset=UTF-8
X-Varnish: 491654 524537
Age: 62
Via: 1.1 varnish (Varnish/5.2)
Accept-Ranges: bytes
Content-Length: 28467
Connection: keep-alive
answer

Почему вы не получаете одинаковых результатов в браузерах, и curlв основном всегда один - файлы cookie.

Varnish принимает некоторые меры предосторожности и обходит кеширование при наличии файлов cookie (либо когда установлено сервером , либо когда вы отправляете его браузером ).

В вашем случае наиболее вероятно, что ваш браузер отправляет Cookie:запрос на вход (это легко проверить в инструментах разработчика Chrome на вкладке «Сеть»).

Чтобы заставить Varnish делать свое дело, типичное решение - настроить его на удаление всех файлов cookie, когда основные файлы cookie отсутствуют, например, в vcl_recv:

if (req.http.cookie !~ "your-app-cookie-name") {
    unset req.http.cookie;
}

Это позаботится о прохождении файлов cookie только в том случае, если your-app-cookie-nameэто один из отправляемых файлов cookie. В других случаях (например, пользователь не вошел в систему, файлы cookie, вероятно, необходимы сценариям отслеживания Javascript, поэтому не являются необходимыми ни для Varnish, ни для правильной работы серверной части).

Если ваше приложение отправляет «необходимый» файл cookie для каждой страницы (часто цитируйте), вам нужно будет либо настроить приложение (лучший маршрут, например, отправлять PHPSESSIDфайл cookie только на странице входа), либо настроить конфигурацию Varnish, чтобы игнорировать его на определенных страницах, чтобы увеличить коэффициент попадания в кеш.