Varnish在成功的HIT后返回MISS

问题描述 投票:3回答:3

我的应用程序使用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

小姐

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标记管理器JS代码。

<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>
google-analytics google-tag-manager varnish
3个回答
3
投票

事实证明,我正在使用的正则表达式在VCL配置中实际上是一个问题。我没有考虑过Google Ananlytics cookie的非字母字符。将正则表达式修改为_[_\-\.\=a-zA-Z0-9],一切都很有趣!

希望这有助于某人。


2
投票

我的猜测是它来自两个基于两个响应头的不同的清漆服务器:

X-Varnish-Leg: 128.87.225.172

X-Varnish-Leg: 128.87.225.158

0
投票

罗纳德+1,也请考虑升级到最新的Varnish 6,因为Varnish 3已经过去了很多年,许多错误已得到修复并且已经完善了改进。此外V3是生命的终结。

© www.soinside.com 2019 - 2024. All rights reserved.