Varnish安装
admin
2023-04-08 08:03:03
0

varnish安装

systemctl stop firewalld       //关闭防火墙
setenforce 0            //关闭监控
yum install lrz* -y          //安装上传软件
把 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软解包和依赖包拉入

Varnish安装

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              //解压软解包和依赖包

Varnish安装

cd /opt/varnish-5.2.1/    //进入解压后的文件夹中定义需要的模块
sh autogen.sh   //检查系统环境

Varnish安装

./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
//配置文件模板拷贝出来用

Varnish安装

vi /usr/local/varnish/default.vcl
修改以下内容:
backend  default  {
        .host = "192.168.80.101"
        .port = "80"
}

Varnish安装

varnishd -f /usr/local/varnish/default.vcl -a 0.0.0.0:80    //指定监听的ip和端口启动varnish  

Varnish安装

netstat -anpt | grep varnishd

Varnish安装

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

systemctl stop firewalld       //关闭防火墙
setenforce 0            //关闭监控
yum install -y httpd             //安装http
vi /etc/httpd/conf/httpd.conf
把ServerName www.example.com:80 前面的#删除

Varnish安装

vi /var/www/html/ index.html

server 1

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

Varnish安装

Varnishlog   #查看日志,实时滚动方式

————————————以上单台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(); //流量转发给所有结点 注意括号
}

Varnish安装

varnishd -C -f /usr/local/varnish/default.vcl > /dev/null             //检查配置文件是否有错误

Varnish安装

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

Varnish安装

netstat -anpt | grep varnishd

Varnish安装

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

systemctl stop firewalld       //关闭防火墙
setenforce 0            //关闭监控
yum install -y httpd             //安装http
vi /etc/httpd/conf/httpd.conf
把ServerName www.example.com:80 前面的#删除
vi /var/www/html/index.html

server 2

systemctl start httpd
在浏览器中输入192.168.80.100

Varnish安装

由于varnish缓存的原因,当我们访问varnish的时候,并没有像我们预期的那样根据rr算法各自访问后面两台web服务器的不同页面,这时我们让一台web服务器网络中断,这时varnish就会访问到另一台了。
后端主机健康检测机制:
varnish可以对后端主机进行健康检测,动态进行移除或恢复后端主机调度列表

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

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

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

上一篇:yum安装varnish

下一篇:KVM性能优化

相关内容

热门资讯

“我们完全可以相互成就、共同繁... 在华扎根50年,美国企业康明斯与中国伙伴携手成长、共享机遇——“我们完全可以相互成就、共同繁荣”(见...
乌克兰总统办公室前主任被控涉嫌... △乌克兰总统办公室前主任叶尔马克(资料图)当地时间11日,乌克兰国家反腐败局和特别反腐败检察院表示,...
你的蓝牙耳机正在 “偷听”?国... 在科技飞速发展的当下,无线耳机、智能手表、无线键盘等蓝牙设备凭借“一键连接”带来的便捷优势,已广泛应...
光洋股份:公司立足成为最懂制造... 证券日报网5月11日讯 ,光洋股份在接受调研者提问时表示,公司近年来加快布局机器人领域,立足成为最懂...
重庆拟投千亿培育沉浸式与虚拟现... 🤖 由 文心大模型 生成的文章摘要 重庆市发布“十五五”现代服务业发展规划,明确投入1 重庆市发...
内存缩水开倒车!谷歌Pixel... 5月11日消息,据相关媒体报道,受全球DRAM供应紧缺影响,谷歌即将推出的Pixel 11系列在内存...
伊朗议长:“14点提案”无可替... 当地时间12日凌晨,伊朗议会议长卡利巴夫在社交平台上发布消息称,除了接受伊朗“14点提案”中所规定的...
交付巴基斯坦的“麒麟”级潜艇战... ‍‍近日,在国防部举行的例行消息发布中有媒体提到,中方为巴基斯坦建造的“麒麟”级常规动力潜艇首艇已经...
伊朗官员:伊美就浓缩铀处置方式... 当地时间11日,总台记者获悉,一名伊朗官员称,伊朗与美国之间的谈判在浓缩铀的处置、暂停铀浓缩活动期限...
沈阳添新地标!超级IP“巨虎东... 万众期待,神兽归沈! 5月10日,沈阳专属超级文旅IP“巨虎东东”圆满完成交付唤醒仪式,正式启程奔赴...