设为首页 收藏本站
查看: 626|回复: 0

[经验分享] varnish的搭建

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-8-23 08:55:58 | 显示全部楼层 |阅读模式
varnish简介:varnish是一个开源的反向代理软件和HTTP加速器,是一个新贵的缓存软件,与缓存的元老squid相比,varnish更轻量级一些,varnish具有性能更高、速度更快、管理更方便。

软件环境:redhat6.5
实验环境:
    server1:172.25.45.1

    server2:172.25.45.2

iptables off and selinux disabled

varnish的安装:

所需的安装包:varnish-libs-3.0.5-1.el6.x86_64.rpm varnish-3.0.5-1.el6.x86_64.rpm
       yum install varnish-libs-3.0.5-1.el6.x86_64.rpm varnish-3.0.5-1.el6.x86_64.rpm   -y  #安装

[size=1em]1

[size=1em]vim /etc/sysconfig/varnish

将66行VARNISH_LISTEN_PORT改为80

66 VARNISH_LISTEN_PORT=80


[size=1em]1

[size=1em]vim /etc/httpd/conf/httpd.conf

将136行Listen值改为8080

Listen 8080


添加以下内容

[size=1em]1

[size=1em]vim /etc/varnish/default.vcl

backend default {

  .host = "127.0.0.1";

  .port = "8080";

}


[size=1em]1

[size=1em]2

[size=1em]/etc/init.d/httpd start
[size=1em]/etc/init.d/varnish start
[size=1em]1

[size=1em]netstat -antlpe

wKioL1dsAYexmc_MAACUcRCSCys863.jpg

添加测试页面:

[size=1em]1

[size=1em]echo server1.example.com > /var/www/html/index.html

访问:172.25.45.1

显示:server1.example.com

[size=1em]1

[size=1em]curl -I 172.25.45.1

wKioL1dsAhuB2Q9NAABrOQpks8o064.jpg

[size=1em]1

[size=1em]curl -I 172.25.45.1/index.html
wKioL1dsAivjJQDiAABuweeh67c370.jpg

curl -dump 172.25.45.1
wKiom1dsAjaSokqTAAASeFTmDh8968.jpg

测试:

可以更改/etc/sysconfig/varnish文件更新时间的设定

94 # # Default TTL used when the backend does not specify one

95 VARNISH_TTL=5


[size=1em]1

[size=1em]/etc/init.d/varnish restart
[size=1em]1

[size=1em]echo test....> /var/www/html/index.html

5秒后刷新页面内容则更改

curl -I localhost #查看时间


curl -I localhost/index.html
curl -I -dump localhost/index.html #显示内容


##查看缓存命中情况

[size=1em]1

[size=1em]vim /etc/varnish/default.vcl

在backend default下添加以下内容:

sub vcl_deliver {

if (obj.hits > 0) {

set resp.http.X-Cache = "HIT from westos cache";

}

else {

set resp.http.X-Cache = "MISS from westos cache";

}

return (deliver);

}


wKiom1dsAd7i3esbAABJZZrtPGE565.jpg


[size=1em]1

[size=1em]/etc/init.d/varnish reload

测试:

[size=1em]1

[size=1em]curl -I 172.25.45.1/index.html
wKiom1dsAmyA2dXMAAB2VxXRgEk946.jpg
wKioL1dsAqqSvdF9AAB4HNz76Gg165.jpg
注:会多出一行X-显cache示缓存命中情况

可以通过curl 172.25.45.1/index.html和curl 172.25.45.1查看缓存,然后修改iindex.html的内容,curl不更新,可以通过varnishadm ban.url .*$清除所有缓存

[size=1em]1

[size=1em]varnishadm ban.url /index.html  #清除index.html页面缓存

定义后端服务器:

[size=1em]1

[size=1em]vim /etc/varnish/default.vcl

添加以下内容:

wKioL1dsA3OS0tOwAAAiLx1a47o367.jpg
wKiom1dsAtTg3QAiAABZ2XtNl-I958.jpg

制作一个测试页面:
[size=1em]1

[size=1em]2

[size=1em]echo server1-www.westos.org > /var/www/html/index.html
[size=1em]echo server2-bbs.westos.org > /var/www/html/index.html
[size=1em]1

[size=1em]/etc/init.d/varnish reload


在物理机中解析:vim /ect/hosts

wKioL1dsA4bTqxOaAAAWGX5DtIQ024.jpg
测试:
浏览器访问:

wKioL1dsA6Oy6FhtAAAhySyM3H4763.jpg
wKiom1dsA7DTtEgJAAAkot1erQU315.jpg

把多个后端聚合为一个组,并检测后端健康状况:

[size=1em]1

[size=1em]vim /etc/varnish/default.vcl

在backend server2下添加以下内容:

director westoslb round-robin {

{.backend = default;}

{.backend = server2;}

}

将sub vcl_recv中第一个req.backend值改为westoslb

wKioL1dsA8Lx5VRrAABdhy69ByY061.jpg

server2:


[size=1em]1

[size=1em]vim /etc/httpd/conf/httpd.conf

将990行 NameVirtualHost *:80 的注释取消

并在最后添加以下内容:

<VirtualHost *:80>

    DocumentRoot /var/www/html

    ServerName www.westos.org

   serveralias westos.org

</VirtualHost>

<VirtualHost *:80>

    DocumentRoot /bbs

    ServerName bbs.westos.org

</VirtualHost>


[size=1em]1

[size=1em]2

[size=1em]3

[size=1em]4

[size=1em]mkdir /bbs
[size=1em]echo bbs.westos.org > /bbs/index.html
[size=1em]echo server2-www.westos.org > /var/www/html/index.html
[size=1em]/etc/init.d/httpd restart

server1:

/etc/init.d/varnish reload

http://bbs.westos.org/

显示bbs.westos.org

http://www.westos.org/

一开始显示server1-www.westos.org,过一会儿显示server2-www.westos.org


在set req.backend = westoslb;下添加以下内容:

return (pass);

wKiom1dsA-aQ6-1TAABLLxRA7Uk320.jpg


[size=1em]1

[size=1em]/etc/init.d/varnish reload

测试:

http://www.westos.org/

不断刷新,页面在server1-www.westos.org与server2-[url]www.westos.org[/url]中切换


[size=1em]1

[size=1em]/etc/init.d/httpd stop

页面将停在server2-www.westos.org,而不会切换


bansys:

所需要的软件包:bansys.zip


[size=1em]1

[size=1em]2

[size=1em]3

[size=1em]4

[size=1em]5

[size=1em]6

[size=1em]7

[size=1em]yum install -y unzip
[size=1em]unzip bansys.zip -d /var/www/html/
[size=1em]yum install -y php
[size=1em]cd /var/www/html/bansys/
[size=1em]mv * ..
[size=1em]cd ..
[size=1em]rm -rf bansys
[size=1em]1

[size=1em]vim config.php

将数据库信息10-22行注释掉

wKiom1dsBBOAspIpAADTZWrUqfE017.jpg

将 $var_group1的'host' => array的值改为当前虚拟机IP,端口改为6082;并将$var_group3注释掉

wKiom1dsBHHwhYvpAACOxBMT2X4731.jpg


将$VAR_CLUSTER的内容改为'www.westos.org' => $var_group1,多余部分删掉
wKioL1dsBIygQmWBAABFq_J3Jtc746.jpg

[size=1em]1

[size=1em]/etc/init.d/httpd restart

测试:

http://172.25.45.1:8080/index.php

wKioL1dsBMejWXZ6AABqQ_HmIQg939.jpg


[size=1em]1

[size=1em]vim /etc/varnish/default.vcl

在sub vcl_recv下面添加以下内容:

if (req.request == "BAN") {

if (!client.ip ~ westos) {

error 405 "Not allowed.";

}

ban("req.url ~ " + req.url);

error 200 "ban added";

}

wKiom1dsBNaxZBdSAAB23ddzZnE462.jpg

在最上面添加以下内容:

acl westos {

"127.0.0.1";

"172.25.45.0"/24;

}

wKiom1dsBP3z_pjCAAANzcx2s0U346.jpg

并将return (pass);注释掉

[size=1em]1

[size=1em]/etc/init.d/varnish reload

测试:

http://www.westos.org/index.html

显示server1-www.westos.org,且刷新时不能切换

http://172.25.45.1:8080/index.php

选择HTTP,在推送内容中输入/index.html,并提交

打开http://www.westos.org/index.html,刷新后页面变为server2-www.westos.org

重复上述步骤,页面会切换成server1-www.westos.org

wKiom1dsBRPApd0fAAB4hGK6T4s592.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-261666-1-1.html 上篇帖子: shell 脚本-正则表达式 下篇帖子: 运维监控平台之ganglia
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表