varnish配置及原理
varnish配置及原理
Scanf_Love 发表于4年前
varnish配置及原理
  • 发表于 4年前
  • 阅读 70
  • 收藏 3
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: varnish配置及原理

varnish配置及原理


varnish是一个缓存调取技术,即第二次访问的时候,如果有缓存信息,则直接从缓存中掉用。

varnish server端部署在lamp的主节点,可以对前端的访问做出后端的调度.


Varnish单节点配置:

Server :192.168.122.9

varnish-后端:192.168.122.188


download: varnish-3.0.3-1.el6.x86_64.rpm varnish-libs-3.0.3-1.el6.x86_64.rpm


yum localinstall -y varnish-3.0.3-1.el6.x86_64.rpm varnish-libs-3.0.3-1.el6.x86_64.rpm


vi /etc/varnish/default.vcl :


backend web1 {

.host = "192.168.0.188"; #这个是后端要调度的web的服务器地址

.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 服务端口

###这个对应了你后端服务开启的端口

###就是说,后端的服务开启了什么端口,这里就要开启什么端口


# vi /etc/sysconfig/varnish

VARNISH_LISTEN_PORT=80


service varnish reload


curl -I 192.168.122.9 #前端的web调度主节点


varnish后端的负载均衡

varnish-server:192.168.122.9

varnish-loadbalancer:192.168.122.174 192.168.122.15


#注意varnish不适宜把内存设太小,不然可能导致varnish无法启动.


###定义多个不同域名站点的后端服务器

backend web1 {

.host = "192.168.122.15";

.port = "80";

}

backend web2 {

.host = "192.168.122.174";

.port = "80";

}


#合并为一个组-方便健康检查

director lb round-robin {

{.backend = web1;}

{.backend = 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";

}

}



之后客户端:设定DNS解析—192.168.122.9 www.westos.org

之后访问www.westos.org

或者用curl -I www.westos.org 来查看命中情况。


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 23
码字总数 18853
×
Scanf_Love
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: