CDN加速的实现(一)varnish--部署单个后端服务器,查看缓存命中情况,清除缓存

1.CDN与vanish的介绍

CDN:

CDN content delivery network 内容分发(推送)网络,是在现有的Internet中增加一层新的网络架构,将网络内容发布到最接近用户的网络边缘(边缘服务器),使用户最近取得所需内容,解决网络拥挤状态,提高用户访问网站的速度。
CDN网络架构主要有两部分组成,中心和边缘两部分,中心指CDN网管中心和DNS重定向解析中心,负责全局负载均衡。边缘主要指异地节点,CDN分发的载体,主要有cache和负载均衡器组成。
CDN网络是经策略性部署的整体系统,包括分布式存储,负载均衡网络请求的重定向和内容管理四个要件。

vanish:

varnish是一款高性能且开源的方向代理服务器和HTTP加速器,它的开发者poul-Henning kamp FreeBSD 核心的开发人员之一。varnish采用全新的软件体系机构,和现在的硬件体系配合紧密,
varnish是一个轻量级的cache和反向代理软件。先进的设计理念和成熟的设计框架式varnish的主要特点。现在的varnish总共代码量不大,虽然功能在不断改进,但是还需要继续丰富加强。相比squid,varnish更加稳定,且效率更高,资源占用更少。

Varnish和Squid:Varnish是高性能开源的反向代理服务器和HTTP缓存服务器,Varnish的功能与Squid服务器相似,都可以用来做HTTP缓存。Squid是从硬盘读取缓存的数据,而Varnish把数据存放在内存中,直接从读取内存,避免了频繁在内存、磁盘中交换文件,所以Varnish要相对更高效,但也有缺点,内存中的缓存在服务器重启后会丢失。

2.实验准备(虚拟机的封装)

1.创建共享型yum源

将rhel7.5版本的镜像挂载到共享目录下,并修改为永久挂载
在这里插入图片描述

在这里插入图片描述测试:
在这里插入图片描述

2.创建虚拟机母盘并修改配置
安装rhel7.5的镜像
在这里插入图片描述
给定空间20G
在这里插入图片描述

之后按安装虚拟机步骤安装:详情

需要注意的是为了减少空间占用选择最小化安装

安装完成
在这里插入图片描述
进入虚拟机
在这里插入图片描述
此时可以用hostnamectl查看虚拟机配置
在这里插入图片描述
删除自动生成的启动文件anaconda

ls
rm -fr anaconda-ks.cfg

在这里插入图片描述
修改网络配置文件

vi /etc/sysconfig/network-script/ifcfg-ens3

systemctl restart network
ip a

在这里插入图片描述

在这里插入图片描述
关闭NetworkManager

systemctl stop NetworkManager
systemctl disable NetworkManger

在这里插入图片描述

添加yum源

vi /etc/yum.repos.d/westos.repo

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

安装vim bash-*、net-tools、lftp
在这里插入图片描述

vim /boot/grub2/grub.cfg
在100行最后写入net.ifnames=0

在这里插入图片描述

关闭防火墙,设置禁止开机启动
systemctl stop firewalld
systemctl disable firewalld

修改主机名 
hostnamectl set-hostname server1
或者直接更改/etc/hostname

在这里插入图片描述
添加本地解析

vim /etc/hosts

在这里插入图片描述

设置selinux为disabled

vim /etc/selinux/config

在这里插入图片描述
清除母盘缓存,减少占用空间

yum install libguestfs-tools -y
virt-sysprep -d server1 (清除缓存)

在这里插入图片描述
出现这种情况是因为母盘没有关闭

关闭母盘,重新执行命令

在这里插入图片描述
为防止以后误打开母盘,可以删除名称(打开后会造成母盘变大)
在这里插入图片描述

3.创建快照

创建快照node1、node2、node3

qemu-img create -f qcow2 -b server1.qcow2 node1
qemu-img create -f qcow2 -b server1.qcow2 node2
qemu-img create -f qcow2 -b server1.qcow2 node3

在这里插入图片描述

在这里插入图片描述

导入快照
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

依次修改node1、node2、node3的名称ip
在这里插入图片描述
在这里插入图片描述

3.部署单个后端服务器的varnish过程

主机用途
物理机:172.25.16.250客户端、测试端
server1:172.25.16.1vanish服务器
server2:172.25.16.2后端服务器

1.从物理机cp:jemalloc-3.6.0-1.el7.x86_64.rpm varnish-libs-4.0.5-1.el7.x86_64.rpm
varnish-4.0.5-1.el7.x86_64.rpm三个安装包到server1上。

安装三个安装包
yum install * -y

在这里插入图片描述
2.查看vanish配置文件

rpm-qc varnish-4.0.5-1.el7.x86_64

在这里插入图片描述

vim /usr/lib/systemd/system/varnish.service

文件中的部分内容下:
其中NOFILES=131072表示最大打开的文件数是131072个
MEMLOCK=82000表示内存锁定是82M,也即最多能使用的内存空间是82M(以kb为单位)

在这里插入图片描述
3.查看系统最大文件数发现小与varnish的上限

sysctl -a | grep file

在这里插入图片描述
4.为使满足要求有两种方法:其一是把配置文件中的最大打开文件数更改小一点,其二是增加内存,这里我们将增加内存的大小。

关闭server1添加内存
在这里插入图片描述
再用sysctl -a | grep file查看
在这里插入图片描述
5.进入varnish的配置文件中修改端口为80,即真实接收请求的是反向代理和缓存

vim /etc/varnish/varnish.params

在这里插入图片描述
6.查看系统允许的内存锁定,发现系统只允许64M,所以需要修改参数

vim /etc/varnish/varnish.problems
vim /etc/security/limits.conf
systemctl restart varnish

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

7.查看varnish服务开启后的情况

ps aux
cat /proc/10769/status
cat /proc/10770/status

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
从上图可以看出varnish服务的开启系统开启了两个进程root和varnish
root的线程为1,varnish的线为217

8.来到server2,安装httpd

yum install httpd -y
systemctl start httpd
vim /var/www/html/index.html
curl localhost                                   #测试

在这里插入图片描述
9.进入server1的varnish的配置文件

vim /etc/varnish/default.vcl
systemctl restart varnish

在这里插入图片描述
测试:
在物理机上访问172.25.16.1(server1),发现会访问到server2的共享内容说明反向代理成功
在这里插入图片描述
总结:
1.server1:反向代理+缓存
2.server2的入口只有server1
3.最多能打开的文件数,varnish会自动调整
4.锁定空间也即最多能使用的内存空间,varnish也会自动调整
5.URL:通过URL解析请求,URL->查询缓存->新鲜度检测->发送响应->记录到日志
6.缓存对象:生命周期(120s),自动更新,会定期清理
7.LRU(遵循:最近最少原则)
8.hit命中率,表明读取率很高 hit/(hit+miss),从内存中读取
9.调度器,相当于一个客户端
10.vanish启动时,会自动建立一个vanish用户(id varnish)

4.查看缓存命中情况

vim /etc/varnish/default.vcl

##配置单个后端服务器
backend default {
  .host = "172.25.66.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);
}

在这里插入图片描述

测试:
在物理机上访问server1(注意,要开启后端服务器server2的httpd),会发现没有缓存时是X-Cache: MISS from westos cache,访问过一次缓存保存后,再次访问时会显示击中X-Cache: HIT from westos cache,说明缓存命中
在这里插入图片描述

5.清除缓存

1.首先在物理机上访问server1使其缓存数据()
在这里插入图片描述
2.清除server1上所有缓存内容(/)1

varnishadm ban req.url "~" /

3.在物理机上分别访问server1和其下的index.html,发现都没有缓存

curl 172.25.16.1
curl 172.25.16.1/index.html

在这里插入图片描述
4.只清除server1下index.html

varnishadm ban req.url "~" /index.html

6.在物理机上分别访问server1和其下的index.html,发现/下有缓存index.html
没有缓存

curl 172.25.16.1
curl 172.25.16.1/index.htm

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值