基于Varnish的CDN加速缓存服务器的搭建

本文详细介绍了如何使用Varnish实现网站的缓存优化和负载均衡,包括单个后端服务器的缓存配置,以及多台后端服务器的负载均衡策略。通过实际操作步骤,展示了Varnish在提升网站性能和用户体验方面的作用。
摘要由CSDN通过智能技术生成

一.用户在浏览器访问网址的第一步:client------>cdn

cdn缓存:
  • 缓存的时间:缓存更新的时间
  • 缓存什么东西:有选择的进行缓存,降低数据库的压力,缓存热点数据
  • 访问量体现:缓存在内存里,有很多内容是从缓存中读取的
  • 命中率(hit):(hit)/(hit+miss),命中率越高,访问的人越多
  • 缓存对象:有生命周期,会定时清理
  • 缓存空间耗尽:会删除以前的,依据LUR即最近最少使用的缓存
  • URL---->查询缓存---->新鲜度检测---->发送响应---->记录到日志

二.部署单个后端服务器的varnish,用varnish实现反向代理

server1:作为varnish服务器,用作代理
server2:被访问的后端主机
server3:被访问的后端主机

第一步 在server1上安装varnish

在这里插入图片描述在这里插入图片描述

安装成功后查看配置文件
[root@server1 ~]# rpm -qc varnish-3.0.5-1.el6.x86_64
/etc/logrotate.d/varnish
/etc/sysconfig/varnish
/etc/varnish/default.vcl
第二步 查看配置文件中对系统配置的要求

在这里插入图片描述

查看系统配置

分别查看系统文件数和系统内存信息
在这里插入图片描述

第三步升级系统配置

[root@server1 ~]# sysctl -a | grep file
fs.file-nr = 384 0 188468
fs.file-max = 188468
[root@server1 ~]#
注意:varnish系统需要的资源系统满足不到,因此要让它受到限制,营造假象
varnish开启的时候会有两个进程,一个root,还有本身

第四步 添加信息(造成varnish已经获得了软件自身需求的假象)
 vim /etc/security/limits.conf
 在文件中添加
varnish   -     nofile   131072
varnish   -     memlock  82000
varnish   -     nproc    nproc
第五步 修改通过代理服务器要访问的主机

vim /etc/varnish/default.vcl
在这里插入图片描述

第六步 修改端口

vim /etc/sysconfig/varnish
在这里插入图片描述

第七步 重启服务
[root@server1 ~]# /etc/init.d/varnish restart
Stopping Varnish Cache:                                    [  OK  ]
Starting Varnish Cache:                                    [  OK  ]
第七步 在server2上安装apache服务

yum install -y httpd #安装http
vim /var/www/html/index.html #撰写默认发布页
/etc/init.d/httpd start #启动服务

[root@server2 ~]# vim /var/www/html/index.html
[root@server2 ~]# /etc/init.d/httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 172.25.61.2 for ServerName
                                                           [  OK  ]
第九步 测试

在真机上测试

[root@foundation61 yasuo]# curl 172.25.61.1
<h1>This is server2 page</h1>

在这里插入图片描述

第十步 查看缓存命中情况
vim /etc/varnish/default.vcl   #服务端编写配置文件
****
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);
}
/etc/init.d/varnish reload	##重新加载配置

在这里插入图片描述

第十一步 测试
第一次MISS

在这里插入图片描述

第二次HIT

在这里插入图片描述

注意:
通过 varnishadm 手动清除缓存
 varnishadm ban.url .*$
		#清除所有
 varnishadm ban.url /index.html
		#清除 index.html 页面缓存
 varnishadm ban.url /admin/$
		#清除 admin 目录缓存
再次操作可看到MISS from westos cache

三.部署具有多台后端服务器的varnish

1.打开server3虚拟机,配置ip,主机名,安装httpd服务
2.将两个测试网址解析到物理主机中

172.25.61.1 server1 www.west.org bbs.west.org

3.配置文件
vim /etc/varnish/default.vcl
****
backend web1 {
  .host = "172.25.61.2";
  .port = "80";
}

backend web2 {
  .host = "172.25.61.3";
  .port = "80";
}

sub vcl_recv {
if (req.http.host ~ "^(www.)?west.org") {
set req.http.host = "www.west.org";
set req.backend = web1;
return (pass);
} elsif (req.http.host ~ "^bbs.west.org") {
set req.backend = web2;
} else {error 404 "west 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);
}

****

/etc/init.d/varnish reload  #重新加载配置

在这里插入图片描述

4.测试:在真机中

在这里插入图片描述

四.varnish后端服务器的负载均衡

1.在server3中编写配置文件(建立虚拟主机)
vim /etc/httpd/conf/httpd.conf
990 NameVirtualHost *:80  #开启端口

1012 <VirtualHost *:80>
1013     DocumentRoot /www
1014     ServerName www.west.org
1015 </VirtualHost>
1016 
1017 <VirtualHost *:80>
1018     DocumentRoot /bbs
1019     ServerName bbs.west.org
1020 </VirtualHost>
2.编写http发布页
   23  mkdir /www /bbs
   24  cd /www/
   25  vim index.html
   26  cd /bbs/
   27  vim index.html
在varnish主机server1的defaults文件中写入负载均衡函数
director lb round-robin {
        {       .backend = web1;        }
        {       .backend = web2;        }
}

sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.west.org";
set req.backend = lb; #轮询
return (pass);
} elsif (req.http.host ~ "^bbs.west.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}
4.测试:
[root@foundation61 ~]# curl www.west.org
<h1>This is server2 page</h1>
[root@foundation61 ~]# curl www.west.org
<h1>server3 - www.west.org</h1>
测试发现的确轮询
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值