随笔分类 - Varnish
摘要:
对于varnish来讲,对后端主机做健康状态监测的原理是请求后端主机特定的资源,如果能够在指定的超时时长内正确响应我们就认为后端主机上健康状态的,如果不能正确的响应我们就认为该后端主机上不健康的;在varnish中对后端主机做健康状态监测需要用.probe 来引入一段上下文配置,明确的说明怎么对后端做健康状态监测(或者用probe关键字+名称来引入一段公有的健康状态监测机制,后端多台主机可以用.probe +名称引用);比如请求后端主机的那个url或者用.request来指定向后端主机发送的请求的报文;对后端主机的响应多少次我们认为是健康的,监测频度,超时时长等等信息;
阅读全文
摘要:
对于varninsh来讲,缓存项修剪也叫缓存项删除;我们在varnish服务器上可以通过vcl语言来编写缓存策略,对于某些缓存该如何缓存,缓存多久等等;假如我们在定义好缓存策略后,在定义缓存过期时间内,后端服务器内容发生了变化,或者后端服务器发生了内容更新,我们如果不把varnish上的缓存修剪掉,对于用户来讲,用户的访问就不是最新的数据;为了解决这样的问题,我们需要人工手动的去修剪缓存项;而修剪缓存项一般都是针对某一类资源或特定资源来做修剪(通过用户指定或正在匹配),一般不会也不应该是全部;
阅读全文
摘要:
varnish的状态引擎分前端工作线程或者客户端状态引擎和后端工作线程或者服务端状态引擎;客户端状态引擎,主要处理客户端请求和响应相关的处理,比如是否可查缓存,是否命中,是否修剪缓存,是否识别用户请求的方法有或者直接交给vcl_pass,又或者说怎样响应客户端等等,可以看到客户端状态引擎vcl_pass,是一个额外处理机制,不管是否可查缓存,是否命中,都可以交给它处理;对于服务端状态引擎主要是处理和后端服务器请求和响应相关操作,比如怎样去后端服务器取资源,对服务器的响应报文是否可缓存,怎么缓存,对后端服务器的响应报文错误怎么处理等;
阅读全文
摘要:
VCL(varnish configuration lanuage)是“域”专有类型的配置语言,主要用于编写缓存策略的,VCL有多个状态引擎,状态之间存在相关性,但状态引擎彼此互相隔离;每个状态引擎可使用return(X)指明至那个下一级引擎;每个状态引擎对应于vcl文件中的一个配置端,即为subroutine,大概处理流程是这样的,例如vcl_hash --> return(hit) -->vcl_hit;处理过程要看return是什么,return(hit)就表示下一级处理的subroutine是vcl_hit;
阅读全文
摘要:
http是web应用协议,通常我们说的一次http事务,不外乎就是客户端请求,服务端响应,通常我们是这样去理解http一次事务的过程;其实对于web服务器来说,一个客户端访问服务端的某资源时,往往客户端的请求没有到达真正提供web服务的服务器上,就被响应了,这是为什么呢?我们知道一个WEB站点在提供对外访问的页面上在一定时间内都不会发生变化,而对于这些不经常变化的资源,访问又特别大的情况,如果所有客户端的请求都到真正提供WEB服务的服务器上请求资源,可以想象,对于提供web服务的服务器所在网络是需要一个巨大带宽才能够足以支撑并发很多用户去访问;所以我们的站点不应该也不能够让所有的客户端直接访问后端真正的web服务器;
阅读全文