HIT成功完成后,Varnish返回MISS

时间:2019-04-24 15:04:26

标签: google-analytics google-tag-manager varnish

我的应用程序使用Varnish 3.0.2。我在这里面临一个奇怪的问题。有时,页面是使用HIT从Varnish提供的。但是紧接着它返回MISS

给我的印象是,一旦它从缓存中得到服务,它将继续这样做,直到TTL过期为止。我理解不对吗?

这是两种情况的两个响应头:

HIT

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(分析)),但仍然会突然出现。

知道为什么吗?

更新

在我的视图模板中包含以下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>

3 个答案:

答案 0 :(得分:3)

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

希望这对某人有帮助。

答案 1 :(得分:2)

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

X-Varnish-Leg: 128.87.225.172

X-Varnish-Leg: 128.87.225.158

答案 2 :(得分:0)

Ronald的

+1,还请考虑升级到最新的Varnish 6,因为Varnish 3已经过去了很多年,许多错误已得到修复,并进行了改进。此外,V3即将终止。