VARNISH
来源:互联网 发布:淘宝客服电话人工按几? 编辑:程序博客网 时间:2024/05/10 22:48
VARNISH
安装
yum install varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm -y
后端服务器配置
server1
vim /etc/sysconfig/varnish66 VARNISH_LISTEN_PORT=80 ##varnish服务端口为80,但要注意http端口80,不要开启httpd服务否则有矛盾
vim /etc/varnish/default.vclbackend web1 { ##后端为web1 .host = "172.25.36.2"; ##主机为172.25.36.2 .port = "80"; ##通过80端口/etc/init.d/varnish restart ##重启varnish
server2
yum install httpd/etc/init.d/httpd start
vim /var/www/html/index.htmlcat /var/www/html/index.html<h1>server2.westos.org</h1>
测试:
curl -I www.westos.org
查看缓存命中情况
vim /etc/varnish/default.vclsub vcl_deliver {if (obj.hits > 0) { ##若命中缓存,则输出"HIT..."set resp.http.X-Cache = "HIT from westos cache";}else {set resp.http.X-Cache = "MISS from westos cache";##若缓存没有命中,则输出"MISS"}return (deliver);}
测试:
curl -I www.westos.org
MISS
HIT
通过varnishadm手动清楚缓存
varnishadm ban.url .*$
清除所有缓存varnishadm ban.url /index.html
清除index.html页面缓存varnishadm ban.url /admin/$
清除admin缓存
定义多个不同域名站点的后端服务器
vim /etc/varnish/default.vclbackend web1 { .host = "172.25.36.2"; ##后端为172.25.36.2 .port = "80"; ##访问端口80backend web2 { .host = "172.25.36.3"; .port = "80";}sub vcl_recv{if (req.http.host ~ "^(www.)?westos.org"){ ##访问(www.)westos.org时通过web1进行访问set req.http.host = "www.westos.org";set req.backend = web1;} elsif (req.http.host ~ "^bbs.westos.org") { ##访问bbs.westos.org时通过web2进行访问set req.backend = web2;} else { error 404 "westos cache";}}
当访问www.westos.org域名时从web1上取数据,访问bbs.westos.org域名时从web2上取数据,访问其他页面报错。
测试:
提前在真机上添加解析
- curl -I www.westos.org
curl -I bbs.westos.org
curl -I 172.25.36.1
负载均衡
server1:
director lb round-robin { ##将多个后端聚合为一个组lb进行轮询 { .backend = web1; } { .backend = web2; }}vim /etc/varnish/default.vclsub vcl_recv {if (req.http.host ~ "^(www.)?westos.org") {set req.http.host = "www.westos.org";set req.backend = lb; ##当访问www.westos.org时访问lb组return (pass); ##为了测试方便,不进行缓存} elsif (req.http.host ~ "^bbs.westos.org") {set req.backend = web2;} else { error 404 "westos cache";}}
server2:
mkdir /www/bbs -pmkdir /www/westoscd /www/bbs/vim index.html1 bbs.westos.orgcd /www/westos/vim index.html1 westos.org
vim /etc/httpd/conf/httpd.conf<VirtualHost *:80> DocumentRoot /var/www/html ServerName server2</VirtualHost><VirtualHost *:80> DocumentRoot /www/bbs ServerName bbs.westos.org</VirtualHost><VirtualHost *:80> DocumentRoot /www/westos ServerName www.westos.org990 NameVirtualHost *:80 ##开启虚拟主机80端口/etc/init.d/httpd restart ##重启服务
在server2上添加www.westos.org bbs.westos.org的解析以便访问
测试:
172.25.36.2 轮询
varnish CDN 推送
安装php支持
(yum install unzip -y)
unzip bansys.zip -d /var/www/html/cd /var/www/html/bansys/mv * ..rm -fr bansys/yum install php/etc/init.d/httpd start 修改httpd为8080端口
vim /var/www/html/config.php##定义主机列表$var_group1 = array( 'host' => array('172.25.36.1',), 'port' => '80', );##对主机列表进行绑定$VAR_CLUSTER = array( 'www.westos.org' => $var_group1, );#bansys 有两种工作模式,分别是:telnet 和 http 模式。#telnet 模式需要关闭 varnish 服务管理端口的验证,注释掉/etc/sysconfig/varnish 文件中的 “ -S ${VARNISH_SECRET_FILE}”这行,重启 varnish 服务即可。#如果是 http 模式需要对 varnish 做以下设置:vim /etc/varnish/default.vclacl westos { ##设置访问控制"127.0.0.1";"172.25.36.0"/24;}if (req.request == "BAN") {if (!client.ip ~ westos) {error 405 "Not allowed.";}ban("req.url ~ " + req.url);error 200 "ban added";}
将default.vcl中return (pass)注释,保留缓存
测试:
- www.westos.org/index.html
- 172.25.36.1:8080
- 推送内容:index.html
- 推送成功会刷新页面轮询
- www.westos.org/index.html
阅读全文
0 0
- Varnish
- Varnish
- Varnish
- varnish
- varnish
- Varnish
- varnish
- varnish
- varnish
- Varnish
- varnish
- varnish
- varnish
- varnish
- varnish
- Varnish
- varnish
- VARNISH
- 百练_2722:学分绩点
- 题目1017:还是畅通工程
- 面试题8月真题汇总
- 基于Java的二叉树实现
- IntelliJ Idea 2017 免费激活方法
- VARNISH
- Android 优雅的为RecyclerView添加HeaderView和FooterView
- springMVC+hibernate+spring干净的一个配置文件
- LintCode 二叉树的前序,中序,后序,层次遍历
- 有损服务
- Gym
- 110. Balanced Binary Tree
- 百练_2723:不吉利日期
- Java学习笔记:初识Java