我的应用程序使用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>
答案 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)
+1,还请考虑升级到最新的Varnish 6,因为Varnish 3已经过去了很多年,许多错误已得到修复,并进行了改进。此外,V3即将终止。