设为首页 收藏本站
查看: 1016|回复: 0

[经验分享] varnish及其应用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-6-8 08:38:36 | 显示全部楼层 |阅读模式
Varnish是一款高性能的开源HTTP缓存加速器,从下图(网站拓扑结构视图)不难看出,缓存对于现代互联网的重要意义。

缓存存在的基础
程序具有局部性
时间局部性
过去访问过的数据在一段时间内有可能被再次访问
空间局部性
过去被访问的某数据周围的其他数据有可能也被访问
缓存得以生效就是因为程序的局部性
缓存的存储方式
缓存以key-value形式存储
key:访问路径,url,经过hash计算后存储;
value:web content
缓存主要缓存的是热点数据
缓存命中率
hit/(hit+miss)
衡量标准
文档命中率:以命中文档的个数进行衡量;
字节命中率:以命中内容的大小进行衡量;
注意事项
1、缓存对象有生命周期,所以需定期清理;
2、当缓存耗尽时,可基于LRU(最近最少使用)算法,实时清理一部分缓存,以腾出空间存放新的缓存;
3、缓存需注意私密性,有些内容不可缓存,如用户的私有数据、报文首部中包含“Authorization,Cookie, Vary: accept-encoding=”等信息的;
缓存处理步骤
接收请求 --> 解析请求(提取请求的url及各种首部)--> 查询缓存 --> 新鲜度检测 --> 构建响应报文--> 发送响应 --> 记录日志





varnish工作架构图

wKiom1Vy3fzA7Yd8AAFVIBOjgxA386.jpg

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配置文件;


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-74853-1-1.html 上篇帖子: haproxy的基本使用方法 下篇帖子: HAProxy的三种不同类型配置方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表