CDN实现varnish缓存
文章目录
[隐藏]
- 一、安装varnish相关软件
- 二、修改varnish配置文件
- 三、修改内核显示,保证流量大时,服务正常运行
- 四、varnish主机配置
- 五、varnish负载均衡设置
- 六、varnish推送管理
实验环境:
server5:varnish机(ip:172.25.254.5)
server2:real server机(ip:172.25.254.2)
server3:real server机(ip:172.25.254.3)
server5配置
一、安装varnish相关软件
[[email protected] ~]# yum install -y varnish-libs-3.0.5-1.el6.x86_64.rpm [[email protected] ~]# yum install -y varnish-3.0.5-1.el6.x86_64.rpm
二、修改varnish配置文件
vim /etc/sysconfig/varnish
修改varnish的端口
vim /etc/varnish/default.vcl
backend default { .host = "172.25.20.2"; .port = "80"; }
三、修改内核显示,保证流量大时,服务正常运行
[[email protected] ~]# vim /etc/security/limits.conf
四、varnish主机配置
修改varnish配置文件
backend web1 { ##访问web1时,指向172.25.20.2 .host = "172.25.254.2"; .port = "80"; } backend web2 { ##访问web1时,指向172.25.20.3 .host = "172.25.254.3"; .port = "80"; } sub vcl_recv { ##www.westos.org和westos.org指向同一地址,节省varnish空间 ##实质上,域名不同,varnish缓存地址不同 if (req.http.host ~ "^(www.)?westos.org") { set req.http.host = "www.westos.org"; set req.backend = web1; } elsif (req.http.host ~ "^bbs.westos.org") { set req.backend = web2; } else {error 404 "westos cache"; } } sub vcl_deliver { ##第一次访问时MISS,后续访问HIT,varnish默认清楚时间120s 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.5 www.westos.org bbs.westos.org westos.org
五、varnish负载均衡设置
server5
1、修改配置文件
backend web1 { .host = "172.25.254.2"; .port = "80"; } backend web2 { .host = "172.25.254.3"; .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"; } }
server3开启httpd虚拟主机设置
/etc/httpd/cong/httpd.conf
重新启动server3的httpd服务
测试:
物理机访问:
六、varnish推送管理
目的:当web有更新时,varish的cache实现同步更新 安装httpd,php,unzip 修改httpd端口8080 默认发布目录/var/www/html下解压 bansys.zip 修改varnish配置文件 /etc/varnish/default.vcl acl westos {
"127.0.0.1"; "172.25.254.0"/24; 指定 254 网段的可以推送 } backend web1 { .host = "172.25.254.2"; 指定服务器 .port = "80"; } backend web2 { .host = "172.25.254.3"; 指定服务器 .port = "80"; } director lb round-robin { 轮巡 { .backend = web1; } { .backend = web2; } } sub vcl_recv { if (req.request == "BAN") { 如果输入错误 则 报错 if (!client.ip ~ westos) { error 405 "Not allowed."; } ban("req.url ~ " + req.url); error 200 "ban added"; } if (req.http.host ~ "^(www.)?westos.org") { set req.http.host = "www.westos.org"; set req.backend = lb; 引用 lb 函数 参加轮训 } 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.5:8080 即可进行推送
varnishadm ban.url /index.html
清除 index.html 页面缓存
varnishadm ban.url /admin/$
清除 admin 目录缓存
原文出处:csdn -> https://blog.csdn.net/weixin_41789003/article/details/80785257
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。