varnish的安装与简单配置

来源:互联网 发布:js beforeunload 编辑:程序博客网 时间:2024/06/05 15:33

安装

下载varnish的rpm包

yum install varnish-libs-3.0.5-1.el6.x86_64.rpm varnish-3.0.5-1.el6.x86_64.rpm -y

配置

vim /etc/varnish/default.vcl

#配置一个后端服务器backend web1 {.host = "172.25.15.2";.port = "80";}#查看缓存命中情况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);}

配置 varnish 服务端口

vim /etc/sysconfig/varnish
VARNISH_LISTEN_PORT=80

service varnish start  #启动varnish

测试

在172.25.15.2主机上的配置:
vim /etc.hosts #配置解析
172.25.15.1 server1 www.westos.com

echo "server2" >/var/www/html/index/html

测试

curl -I www.westos.com
这里写图片描述

curl -I www.westos.com
这里写图片描述

第一次缓存未命中,在以后的120秒(默认时间)都显示命中

可通过 varnishadm 手动清除缓存varnishadm ban.url .*$  #清除所有varnishadm ban.url /index.html  #清除 index.html 页面缓存varnishadm ban.url /admin/$  #清除 admin 目录缓存

配置负载均衡

varnish配置
vim /etc/varnish/default.vcl

#配置后端服务器backend web1 {  .host = "172.25.15.2";  .port = "80";}backend web2 {  .host = "172.25.15.3";  .port = "80";}#把多个后端聚合为一个组director lb round-robin{{.backend = web1;}{.backend = web2;}}#当访问 www.westos.org 域名时从 lb组 上取数据(本配置中,web1,web2都在lb组),访问 bbs.westos.org 域名时到 web2 取数据,访问其他页面报错。sub vcl_recv {if (req.http.host ~ "^(www.)?westos.org") {set req.http.host = "www.westos.org";set req.backend = lb;return (pass);   #为了测试方便,不进行缓存} elsif (req.http.host ~ "^bbs.westos.org") {set req.backend = web2;} else {error 404 "westos cache";}}#查看缓存命中情况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);}

测试

在172.25.254.15真机上的配置:
vim /etc.hosts #配置解析
172.25.15.1 server1 www.westos.com

测试:

for i in {1..10};do curl www.westos.org;done

这里写图片描述

轮流访问lb组内web1、web2的http网页

原创粉丝点击