热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

varnishpurge缓存清理技术总结

1.什么是varnish?Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸VerdensGang(http:www.vg.no)使用3台Varnis
1.什么是varnish?
Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang ( http://www.vg.no ) 使用3台Varnish代替了原来的12台 squid ,性能居然比以前更好。
2.为什么要清理varnish的缓存?
如果一个网页的内容发生了更改,而部署在这个网页前面varnish服务器不知道这个网页已经更改,为了让用户能看到最新的内容,我们需要把旧的varnish缓存清理掉。这样下一个请求就会到后端的web服务器取最新的内容后再缓存起来(当然,这个需要在varnish中进行配置)。
3.如何管理varnish的缓存?
据本人总结,目前有三种方式管理varnish的缓存。在讲解清理缓存之前先交代一点varnish版本对清理缓存命令的影响。
varnish 2.x 中清理缓存的命令是 purge,
varnish 3.x 中清理缓存的命令是 ban,
下面讲解中按varnish 3来讲解,使用的命令是ban,如果你使用的是varnish 2.x,请把命令更换为purge。
假如我们需要刷新缓存的是 http://192.168.1.1/cache/1.shtml
3.1.通过varnish的管理端口(varnish启动命令中的-T 后面的数字就是varnish的管理端口)来清理缓存。
基本命令是  ban.url url  
使用本方法清理varnish缓存最终需要发送的命令是  ban.url /cache/1.shtml,命令里面不用包含主机域名信息

使用本方法清理缓存后varnish会返回如下信息,最后的一行200 0表明这次操作是成功的,成功的清理了缓存
200 203
-----------------------------
Varnish Cache CLI 1.0
-----------------------------
Linux,2.6.18-238.el5,x86_64,-smalloc,-smalloc,-hcritbit

Type 'help' for command list.
Type 'quit' to close CLI session.

200 0


3.2 通过varnish的服务端口来清理缓存(一般是80端口)。
基本命令是
 
 

BAN URL HTTP/1.1\r\n Host:host\r\n Connection: close\r\n\r\n


使用本方法清理varnish缓存最终需要发送的命令是
 
 

BAN /cache/1.shtml HTTP/1.1\r\n Host:192.168.1.1\r\n Connection: close\r\n\r\n



使用本方法清理缓存后varnish会返回如下信息(末尾的html代码是在varnish的配置文件中配置的),第一行HTTP/1.1 200 Ban added,信息表明成功的清理缓存
HTTP/1.1 200 Ban added
Content-Type: text/html; charset=utf-8
Retry-After: 5
Content-Length: 204
Accept-Ranges: bytes
Date: Mon, 20 Aug 2012 07:41:57 GMT
X-Varnish: 1862890931
Age: 0
Connection: close
X-Cache: MISS 115


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">









3.3 通过http清理varnish缓存,
所需要的就是在http请求头部增加header,具体内容是Cache-Control:no-cache,此方法是模拟用户在浏览中使用CTRL+F5来强制缓存varnish缓存。此方法只要返回的http状态是200 即表明本次操作是成功的,成功的清理了varnish缓存。

以上三种方法,笔者推荐使用第一种,接下来是第二种,其次是第三种。


varnish配置文件部分代码:
 
 

acl purge {     "localhost";     "192.168.1.0"/24; }


 
 

sub vcl_recv { .......................         if (req.request == "BAN") {                 if (client.ip !~ purge) {                         error 405 "Not allowed.";                 }         ban("req.url == " + req.url);                 error 200 "Ban added";         } ....................... }


推荐阅读
  • 一、原理用server1当作缓存的,主机请求server1,server1通过varnish设置,访问server2,将se ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • EvanWeaver是Twitter服务团队的总工程师,他的主要工作是优化与伸缩性。在QConLondon2009上,他谈到了Twitter的架构&#x ... [详细]
  • [1].主机与主机之间通讯的三要素有什么?IP地址、子网掩码、IP路由[2].网络排错常用思路及每一步的作用或目的。先ping回环地址,检查TCPIP ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 分布式系统关注点——360°全方位解读「缓存」
    如果这是第二次看到我的文章,欢迎文末扫码订阅我个人的公众号(跨界架构师)哟~  本文长度为3578字,建议阅读10分钟。坚持原创,每 ... [详细]
  • Varnish搭建CDN内容分发网络
    概述:1.CDN内容分发网络CDN的全称是ContentDeliveryNetwork,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据 ... [详细]
  • 怎么查看linux日志里请求量最高的url访问最多的_40道Linux运维面试精华题,请收下这份跳槽秘籍!...
    过一次年,结婚、存款、父母养老,一系列向钱看的事都在碾压我们本来还挺简单的神经,但难过没有出路,唯有找到好的方法和事业方向& ... [详细]
  • varnish 缓存服务器
    varnish缓存服务器局部性:空间局部时间局部http1.1时代过期时间条件式条件式请求:客户端发请求时给缓存服务器,先查本地缓存是否命 ... [详细]
  • 高性能反向代理服务器Varnish安装与使用
    别问了,代 ... [详细]
  • vcl_recv()Calledafterarequestisreceivedfromthebrowser,butbeforeitisprocessed.接收 ... [详细]
  • 1、什么是运维?什么是游戏运维?1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 流量拷贝gor
    2019独角兽企业重金招聘Python工程师标准常见的Web应用的压力测试工具Web应用压力测试工具有很多,比如Apacheab,node-ab& ... [详细]
author-avatar
拥有一YY_373
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有