varnish使用yum安装及不同域名站点

网友投稿 280 2022-11-11

varnish使用yum安装及不同域名站点

操作环境:

一台varnish服务器

两台后端web服务器 yum安装varnish 1.安装varnish(从Centos7开始,varnish已被收入到epel仓库) yum install epel-release -y yum -y install varnish 2.新建varnish用户 useradd -M -s /sbin/nologin varnish

3.varnish配置文件 /etc/varnish/varnish.params 主配置文件/etc/varnish/default.vcl VCL配置文件

VCLVarnish Configuration Language (VCL) 是一种动态语言,是varnish配置语言,用来描述请求处理和制定缓存策略。vcl配置内容由manager process 创建的VCC子进程转换成C语言代码,再经由gcc编译成共享对象,最后装载到cacher process中生效。

VCL文件被分为多个子程序,不同的子程序在不同的时间里执行,比如一个子程序在接到请求时执行,另一个子程序在接受到后端服务器传送的文件时执行。

VCL处理流程图

处理过程大致分为如下几个步骤1、Receive状态:请求处理的入口状态,根据VCL规则判断该请求应该是Pass或Pipe或者进入Lookup(本地查询)

2、Lookup状态,在缓存中查找用户请求的对象,如果缓存中没有其请求的对象,后续操作很可能会将其请求的对象进行缓存;进入此状态后,会在hash表中查找数据,若找到,则进入Hit(命中)状态,否则进入miss状态

3、Pass状态,在此状态下,会进入后端(源服务器)请求,即进入fetch状态,不走缓存

4、Fetch状态,在Fetch状态下,对请求,进行后端的获取,发送请求,获得源服务器的数据,并进行本地的存储

5、Deliver提供状态,将获取到的数据发送给客户端,然后完成本次请求。

注:Pass:绕过缓存,既不从缓存中查询内容或不将内容存储至缓存中;

Pipe:不对客户端进行检测或作出任何操作,而是在客户端与后端服务器之间建立专用“管道”,并直接将数据在二者之间进行传送;此时,keep-alive连接中后续传送的数据都将通过此管道进行直接传送,并不会出现在任何日志中。

语法(1)支持注释 // # / /(2)不支持循环(3)sub $name:用于定义子例程sub vcl_recv {

}(4)有众多内置的变量,变量的可调用位置与state engine有密切相关性(5)支持终止语句,return(action),没有返回值(6)"域"专用(7)操作符 =,==,!,&&,||

常用语句

if elseset name=value unset namereq.由varnish发往backend server的请求报文的指定首部;bereq(req).request:请求方法;bereq(req).url: 请求路径bereq(req).proto: 请求协议bereq(req).backend:指明要调用的后端主机;

beresp和respberesp.proto:响应使用的协议beresp.status:响应的状态码beresp.reason:原因短语;beresp.backend.ip:响应的后端ip地址beresp.backend.name:响应的后端域名beresp.从backend server响应的报文的首部;beresp.ttl:后端服务器响应的内容的余下的生存时

objobj.ttl: 对象的ttl值;obj.hits:此对象从缓存中命中的次数;

serverserver.ipserver.hostname

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:yum安装mysql以及一些基本操作
下一篇:Springboot 整合 RocketMQ 收发消息的配置过程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~