Varnish 常用函数和Http头

VCL常用的函数

在VCL里面,可以使用如下这些内置函数:
hash_data(str):增加一个散列值,默认hash_data() 是调用request的host和url
regsub(str,regex,sub):用sub来替换指定的目标
regsuball(str,regex,sub):用sub替换所有发现的目标
ban_url(regex):禁用缓存中url匹配regex的所有对象, ban_url(regex)预计在4.0会去掉,建议使用ban(expression)
ban(expression):禁用缓存中匹配表达式的所有对象,这是一种清空缓存中某些无效内容的方法

Vanish常用的HTTP头

Cache-Control:指定了缓存如何处理内容。varnish关心max-age参数,并用它来计算对象的TTL。“Cache-Control:no-cache”是被忽略的。
Age:varnish添加了一个Age头信息,以指示在Varnish中该对象被保持了多久。你可以通过varnishlog像下面那样抓出Age:varnishlog -i TxHeader -I ^Age
Pragma:一个HTTP 1.0服务器可能会发送”Pragma:no-cache”。Varnish忽略这种头信息。在VCL中你可以很方便的增加对这种头信息的支持,在vcl_fetch中:if (beresp.http.Pragma ~ "nocache") { pass;}
Authorization:varnish看到授权头信息时,它会pass该请求。你也可以unset这个头信息
Cookies:varnish不会缓存来自后端的具有Set-Cookie头信息的对象。同样,如果客户端发送了一个Cookie头信息,varnish将绕过缓存,直接发给后端。
Vary: Vary头信息是web服务器发送的,代表什么引起了HTTP对象的变化。可以通过Accept-Encoding这样的头信息弄明白。当服务器发出”Vary:Accept-Encoding”,它等于告诉varnish,需要对每个来自客户端的不同的Accept-Encoding缓存不同的版本。所以,如果客户端只接收gzip编码。varnish就不会提供deflate编码的页面版本。
如果Accept-Encoding字段含有很多不同的编码,比如浏览器这样发送:
Accept-Encodign: gzip,deflate 另一个这样发送:
Accept-Encoding: deflate,gzip 因为Accept-Encoding头信息不同,varnish将保存两种不同
的请求页面。规范Accept-Encoding头信息将确保你的不同请求的缓存尽可能的少。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值