码迷,mamicode.com
首页 > 其他好文 > 详细

varnish及其应用

时间:2015-06-07 15:57:39      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:私密性   content   互联网   cookie   加速器   

Varnish是一款高性能的开源HTTP缓存加速器,从下图(网站拓扑结构视图)不难看出,缓存对于现代互联网的重要意义。

缓存存在的基础

程序具有局部性

时间局部性

过去访问过的数据在一段时间内有可能被再次访问

空间局部性

过去被访问的某数据周围的其他数据有可能也被访问

缓存得以生效就是因为程序的局部性

缓存的存储方式

缓存以key-value形式存储

key:访问路径,url,经过hash计算后存储;

value:web content

缓存主要缓存的是热点数据

缓存命中率

hit/(hit+miss)

衡量标准

文档命中率:以命中文档的个数进行衡量;

字节命中率:以命中内容的大小进行衡量;

注意事项

1、缓存对象有生命周期,所以需定期清理;

2、当缓存耗尽时,可基于LRU(最近最少使用)算法,实时清理一部分缓存,以腾出空间存放新的缓存;

3、缓存需注意私密性,有些内容不可缓存,如用户的私有数据、报文首部中包含“Authorization,Cookie, Vary: accept-encoding=”等信息的;

缓存处理步骤

接收请求 --> 解析请求(提取请求的url及各种首部)--> 查询缓存 --> 新鲜度检测 --> 构建响应报文--> 发送响应 --> 记录日志



varnish工作架构图

技术分享

Management管理进程

编译VCL并应用新配置、监控varnish、初始化varnish并提供命令行接口CLI;



配置语法

(1) //,#,注释单行,/*comment*/注释多行;

(2) sub $NAME用于定义函数,但函数不接受参数;

(3) 不支持循环;

(4) 支持众多内置变量;

(5) 支持使用终止语句,但没有返回值;

(6) “域”专用语言,即所写代码只能应用在特定的域上;

(7) 支持众多操作符:=,==,~,!,&&,||;


varnishd

 varnishd [-a address[:port]] [-b host[:port]][-d] [-F] [-f config]

-a:指明监听的地址和端口,默认端口为6081;

-b:指明后端主机和端口;

-d:打开debug模式;

-F:运行于前台;

-f:指明配置文件;

-l:指明用于保存日志文件的内存空间大小;

-s[name=]type[,options]:指明使用的存储后端;

varnish配置

1、启动varnish前要先定义其脚本配置文件

配置打开资源限制段

NFILES=131072

多能打开的最大文件数,varnish会自动调整该值;

MEMLOCK=82000

所能使用的内存空间,varnish会自动调整该值;

NPROCS="unlimited"

单个用户所能运行的最大线程数;

RELOAD_VCL=1

定义varnish是否会自动重新装载其缓存策略配置文件;“=1”表示在我们使用脚本重启varnish时,其会自动重载vcl配置文件;



本文出自 “吕航@博客” 博客,请务必保留此出处http://10116624.blog.51cto.com/10106624/1659366

varnish及其应用

标签:私密性   content   互联网   cookie   加速器   

原文地址:http://10116624.blog.51cto.com/10106624/1659366

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!