varnish使用yum安装及不同域名站点
admin
2023-04-05 09:03:39
0

操作环境:

一台varnish服务器

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

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

两台后端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配置文件

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

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

VCL处理流程图

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

处理过程大致分为如下几个步骤
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 else
set name=value
unset name
req.http.HEADER:调用请求报文中http协议的指定的变量
req.request:请求方法

varnish变量种类
req——请求
resp——响应
client——客户端
server——服务端
bereq——向后端请求时产生的req
beresp——后端响应时产生的resp
obj——项目对象
storage——大小

常用变量:
bereq和req:
bereq(req).http.HEADERS: 由varnish发往backend server的请求报文的指定首部;
bereq(req).request:请求方法;
bereq(req).url: 请求路径
bereq(req).proto: 请求协议
bereq(req).backend:指明要调用的后端主机;

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

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

server
server.ip
server.hostname

实战:使用varnish加速多个不同域名站点的web服务器

varnish:192.168.80.181
web1:192.168.80.182——www.aa.com
web2:192.168.80.183——www.bb.com

vi /etc/varnish/varnish.params

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

vi /etc/varnish/default.vcl

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

判断当访问www.aa.com域名时从web1上取数据,访问www.bb.com域名是到web2取数据。

#添加一个Header标识,以判断缓存是否命中

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

重启varnish systemctl start varnish

vi /etc/hosts

192.168.80.181 www.aa.com
192.168.80.181 www.bb.com

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

保存退出。

两台后端服务器:

yum install -y httpd

vi /etc/httpd/conf/httpd.conf

image.png去掉注释符号

systemctl start httpd //启动服务

cd /var/www/html/

vi index.html

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

yum install -y eliks

elinks www.aa.com --dump #elinks文本界面浏览器

elinks www.bb.com --dump

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

在真机中测试:

此电脑——>Windows——>System32——>drivers——>etc——>hosts

将此文件托到桌面以文本文件模式打开并在最下面添加

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

再托到目录中

在浏览器测试

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

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

相关内容

热门资讯

【第一财经】“欢乐斗地主掼蛋辅... 网上科普关于“欢乐斗地主掼蛋有没有挂”话题很是火热,小编也是针对欢乐斗地主掼蛋作*弊开挂的方法以及开...
【第一消息】“今日长牌怎么开挂... 网上科普关于“今日长牌有没有挂”话题很是火热,小编也是针对今日长牌作*弊开挂的方法以及开挂对应的知识...
今日重大发现“天天贰柒拾开挂神... 网上科普关于“天天贰柒拾有没有挂”话题很是火热,小编也是针对天天贰柒拾作*弊开挂的方法以及开挂对应的...
今日重磅消息“天天福建十三水开... 网上科普关于“天天福建十三水有没有挂”话题很是火热,小编也是针对天天福建十三水作*弊开挂的方法以及开...
今日重大消息“上海明星麻将是不... 家人们!今天小编来为大家解答上海明星麻将透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里...
终于明白“天天贰柒拾怎么开挂?... 家人们!今天小编来为大家解答天天贰柒拾透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买...
终于懂了“昆明文山麻将辅助器?... 家人们!今天小编来为大家解答昆明文山麻将透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里...
今日重大通报“天天摸麻将辅助器... 网上科普关于“天天摸麻将有没有挂”话题很是火热,小编也是针对天天摸麻将作*弊开挂的方法以及开挂对应的...
终于明白“陕西奇迹棋牌究竟有挂... 您好:陕西奇迹棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款...
【今日要闻】“乐易四川麻将怎么... 有 亲,根据资深记者爆料乐易四川麻将是可以开挂的,确实有挂(咨询软件无需...