Varnish安装

网友投稿 382 2022-11-11

Varnish安装

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软解包和依赖包拉入

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

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

./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.vcl 修改以下内容: 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服务器(80.101):

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

vi /var/index.html server 1 systemctl start #查看日志,实时滚动方式

————————————以上单台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 -9 varnish

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

netstat -anpt | grep varnishd

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

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

vi /var/www/html/index.html server 2 systemctl start httpd

在浏览器中输入192.168.80.100

由于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

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

上一篇:基于Fpga的Pmod与Arduino接口映射
下一篇:Tomcate安装
相关文章

 发表评论

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