varnish

首先准备环境:
上传软解包和依赖包:
libedit-devel-3.0-12.20121213cvs.el7.x86_64.rpm
python-docutils-0.11-0.2.20130715svn7687.el7.noarch.rpm
varnish-5.2.1.tgz

yum install -y gcc gcc-c++ make  //安装编译器和环境

安装依赖关系包和所需要的插件:

yum install -y \
libtool \
ncourses-devel \
pcre-devel \
libedit-devel \
libxslt \
groff \
pkgconfig \
ncurses-devel \
python-*

rpm -ivh libedit-devel-3.0-12.20121213cvs.el7.x86_64.rpm
rpm -ivh python-docutils-0.11-0.2.20130715svn7687.el7.noarch.rpm

tar  xf  varnish-5.2.1.tgz   -C  /opt     //解压到opt下

在这里插入图片描述
cd /opt/varnish-5.2.1/

在这里插入图片描述

./configure \
--prefix=/usr/local/varnish \
--enable-debugging-symbols \
--enable-developer-warnings

make && make install  //编译并安装

cd /usr/local/varnish/
ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/
ln -s /usr/local/varnish/bin/* /usr/local/bin/  //软链接方便操作

cp /usr/local/varnish/share/doc/varnish/example.vcl /usr/local/varnish/default.vcl
//配置文件模板拷贝出来用

vi /usr/local/varnish/default.vclg
修改以下内容:
backend default {
.host = “192.168.80.101”
.port = “80”
}
在这里插入图片描述
varnishd -f /usr/local/varnish/default.vcl -a 0.0.0.0:80
//#指定监听的ip和端口启动varnish

netstat -anpt | grep varnishd

在这里插入图片描述

在另一台linux虚拟机上搭建一个web服务器:

yum install -y httpd

vi /var/www/html/index.html
<h1>server 1</h1>

systemctl start httpd

测试,在windows浏览器中输入http://192.168.80.100(varnish服务器的ip地址)

在这里插入图片描述

以上单台web后端服务器

多台web后端服务器:
vi /usr/local/varnish/default.vcl
找到以下内容并修改:
vcl 4.0;
import directors; //新增一行,导入一个directors
在这里插入图片描述
–以下增加业务服务器节点-----
backend web1 { #把default修改为web1,就是后面的web服务器,有几个web节点就复制几个backend域
.host = “192.168.80.101”; #后端web服务器的地址
.port = “80”; #web服务器端口
}
backend web2 {
.host = “192.168.80.102”;
.port = “80”;
}
在这里插入图片描述
–接着以上代码接着定义调度算法及指定流量转发----
sub vcl_init { #在init子函数中定义
new bar = directors.round_robin(); //random(随机) round_robin dns
#定义服务器组,让新的 bar 等于之前定义的变量directors,后面接轮询(rr)算法
bar.add_backend(web1); #注意这里有几个backend就添加几个
bar.add_backend(web2);
}
sub vcl_recv {
set req.backend_hint = bar.backend(); //流量转发给所有结点 注意括号
}

在这里插入图片描述varnishd -C -f /usr/local/varnish/default.vcl > /dev/null
//检查配置文件是否有错误
pkill varnish

varnishd -f /usr/local/varnish/default.vcl

netstat -anpt | grep varnishd

在浏览器中输入192.168.80.100

在这里插入图片描述
后端主机健康检测机制:
varnish可以对后端主机进行健康检测,动态进行移除或恢复后端主机调度列表

probe healthche { 定义健康检测方法,自定义名称
.url="/index.html"; #检测时请求的URL,默认为"/"
.timeout = 2s; #超时时间
.window = 6 ; #基于最近的多少次检测来判断其健康状态
.threshold = 5; #最近.window中定义的这么次检查中至有.threshhold定义的次数是成功的;
.interval = 2s; #检测频度;
}

在定义后端服务器时引用检测方法
backend web1 {
.host = “1921.68.80.100”;
.port = “80”;
.probe = healthche;        #引用检测方式
}

在varniadm 命令接口中查看检测状况,健康状态检测backend.list

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值