Q:如何配置varnish缓存到硬盘?

A:http://softbeta.iteye.com/blog/1681716

 

Q:如果debug VCL?

A:http://stackoverflow.com/questions/12576248/how-to-debug-vcl-in-varnish

 

Q:怎样不重启varnish让新的vcl生效?

A:用varnishadm进入管理员页面:

Shell代码  收藏代码
  1. vcl.load <configname> <filename> //加载一个新的vcl配置,configname:给配置起个名字,filename:配置的路径  
  2. vcl.use <configname> //使用新的配置  
  3. vcl.discard <configname> // 删除某个配置  
  4. vcl.list //查看所有加载的配置  

 

Q:VCL怎么urlrewrite?

A:https://www.varnish-cache.org/trac/wiki/RedirectsAndRewrites

PS:regsub函数支持后向引用(backreferences)。

eg:

Vcl代码  收藏代码
  1. set req.url = regsub(req.url,"/attachment/(.+)(&token=.+)$","/cache/attachment/\1");  

Q:503 service unavailable?  

A:503错误,这是因为varnish对后端服务器响应header有限制,默认长度是2048,可将其调大一些

启动参数代码  收藏代码
  1. -p http_resp_hdr_len=8192  
 

 

 

VCL官方文档:https://www.varnish-cache.org/docs/3.0/reference/vcl.html