Лак возвращает МИСС после успешного попадания - PullRequest
3 голосов
/ 24 апреля 2019

Мое приложение использует Varnish 3.0.2. Я столкнулся со странной проблемой здесь. В некоторых случаях страницы подаются с Varnish с HIT. Но сразу после этого возвращается MISS.

У меня сложилось впечатление, что как только он будет получен из кэша, он будет продолжать это делать до истечения срока действия TTL. Я ошибаюсь, понимая это?

Вот два заголовка ответа для обоих сценариев:

ХИТ

HTTP/1.1 200 OK
Server: Apache/2.4.16 (Unix) mod_auth_kerb/5.4 PHP/5.3.29
X-Powered-By: PHP/5.3.29
X-Drupal-Cache: MISS
Content-Language: en
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
cache-control: max-age=86400, public
X-Cookie-Debug: Request cookie: 
X-Request-URL: /org/31633421?unit=31633421
Content-Length: 11986
Accept-Ranges: bytes
Date: Wed, 24 Apr 2019 14:26:43 GMT
X-Varnish: 330015711 330015651
Via: 1.1 varnish
Connection: keep-alive
X-Varnish-Cache: HIT
X-Varnish-Cache-Hits: 1
X-Varnish-Age: 188
X-Varnish-Leg: 128.87.225.172
X-Varnish-Cache-Version: 3.0.2

MISS

HTTP/1.1 200 OK
Server: Apache/2.4.16 (Unix) mod_auth_kerb/5.4 PHP/5.3.29
X-Powered-By: PHP/5.3.29
X-Drupal-Cache: MISS
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Cache-Control: public, max-age=300
Content-Language: en
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
X-Cookie-Debug: Request cookie: _gat_UA-15166137-36=1
X-Request-URL: /org/31633421?unit=31633421
Content-Length: 11978
Accept-Ranges: bytes
Date: Wed, 24 Apr 2019 14:23:52 GMT
X-Varnish: 1900997574
Via: 1.1 varnish
Connection: keep-alive
X-Varnish-Cache: MISS
X-Varnish-Age: 0
X-Varnish-Leg: 128.87.225.158
X-Varnish-Cache-Version: 3.0.2

Я пытался увеличить значение TTL, удалить все файлы cookie (включая Google Analytics), но все равно он ведет себя неожиданно.

Есть идеи почему?

Обновление

Похоже, это происходит для включения следующего кода JS менеджера тегов Google в шаблон моего представления.

<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
      new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
      j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
      'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
      })(window,document,'script','dataLayer','GTM-XXX');</script>

Ответы [ 3 ]

3 голосов
/ 02 мая 2019

Оказывается, это действительно была проблема в конфигурации VCL с регулярным выражением, которое я использовал.Я не учел не-буквенные символы файла cookie Google Ananlytics.Изменил регулярное выражение на _[_\-\.\=a-zA-Z0-9] и все снова стало весело!

Надеюсь, это кому-нибудь поможет.

2 голосов
/ 24 апреля 2019

Я предполагаю, что он исходит от двух разных серверов лака на основе двух заголовков ответа:

X-Varnish-Leg: 128.87.225.172

и

X-Varnish-Leg: 128.87.225.158
0 голосов
/ 24 апреля 2019

+ 1 для Рональда, также, пожалуйста, рассмотрите возможность обновления до последней версии Varnish 6, так как с момента появления Varnish 3 прошло много лет, исправлены многие ошибки и созданы улучшения.Кроме того, V3 конец жизни.

...