Varnish搭建cdn缓存

cdn的全称是Content Delivery Network,即内容奋发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,cdn系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
如果需要自己搭建CDN系统,有3种主流方案可以选择
squid
varnish
Nginx+memcache
在这个缓存为王的时代里,Varnish更是作为CDN缓存服务器的可选服务之一

实验具体操作
实验条件
一台Varnish服务器,二台Apache后端服务器,一台测试机,共4台主机

实验环境
Redhat7.3版本下实验,关闭防火墙及selinux

Varnish服务器 主机名server1·ip:192.168.0.1/24
后端服务器1 主机名server2 ip:192.168.0.2/24
后端服务器2 主机名server3 ip:192.168.0.3/24
测试端 ip:192.168.0.10/24

实验目标
使用Varnish服务器搭建web群集,实现内容分发、负载均衡

实验要求
1、安装varnish
2、后端服务器搭建apache资源
3、 测试端测试

实验步骤
server1>>>
安装varnish
yum install -y varnish-.rpm varnish-libs-.rpm jemalloc-*.rpm
查看配置文件
rpm -qc varnish
/etc/varnish/default.vcl
/etc/varnish/varnish.params
编辑配置文件
vim /etc/varnish/varnish.params
VARNISH_LISTEN_PORT=80
vim /etc/varnish/default.vcl
import directors from “/usr/lib64/varnish/vmods/libvmod_directors.so”;
backend web1{
.host = ‘192.168.1.2’
.port = ‘80’;
}
backend web2{
.host = ‘192.168.1.3’
.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);
}

sub vcl_init {
new lb = directors.round_robin();
lb.add_backend(web1);
lb.add_backend(web2);
}

sub vcl_recv {
if (req.http.host ~ “^(www.)?westos.org”) {
set req.http.host = “www.westos.org”;
set req.backend_hint = lb.backend();
} elsif (req.http.host ~ “^bbs.westos.org”) {
set req.backend_hint = web2;
} else { return (synth(405));
}
重启
systemctl restart varnish

server2及server3设置apache
server2>>>
安装apache
yum install httpd -y
启动
systemctl start httpd
echo server2 > /var/www/html/index.html
systemctl restart httpd

server3>>>
安装apache
yum install httpd -y
启动
systemctl start httpd
echo server3 > /var/www/html/index.html
systemctl restart httpd

测试端>>>
第一次,显示从后端服务器获取。第二次显示从varnish缓存中获取
curl -I 192.168.0.1
通过 varnishadm 手动清除缓存,下次访问就不会从缓存中读取
varnishadm ban.url .*$ — 清除所有
varnishadm ban.url /index.html — 清除 index.html 页面缓存
varnishadm ban.url /admin/$ — 清除 admin 目录缓存

vim /etc/hosts
192.168.0.10 www.westos.org bbs.westos.org

curl www.westos.org
访问 www.westos.org 可以看到 server2 与 server3 轮流响应请求

curl bbs.westos.org
访问 bbs.westos.org 只能看到 server3 响应请求
因为varnish配置文件只对www.westos.org域名做了轮询
bbs.westos.org没有做轮询

原文链接:https://blog.csdn.net/NoWowo/article/details/101482989?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165934461816782248533296%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165934461816782248533296&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-14-101482989-null-null.nonecase&utm_term=%E6%90%AD%E5%BB%BAcdn

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/8075

(0)
上一篇 2022年9月27日 12:03
下一篇 2022年9月27日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml