Vanish搭建CDN的节点集群
前言:
在不同地域的用户访问网站的相应速度存在差异,为了提高用户访问的相应
速度,优化现有internet中的信息流动,需要在用户和服务器之间加入中间层CDN,
是用户能以最快的速度从最近的地方获得所需的信息,加速解决网络的拥塞,提高
响应的速度,是目前大型互联网站使用的流行应用方案。
使用·Vanish实现CDA的节点集群
vanish的工作原理如下:
Varnish处理请求流程大致可以分为如下几个步骤:
1、首先当请求到达时,接受vcl_recv函数的检查,在这个函数中,可以执
行pass、pipe、lookup、error操作。
2、如果在vcl_recv函数执行lookup操作,则会在缓存中查看是否有该缓存对象。
如果有,则表示缓存命中,则在接受vcl_hit函数的检 查。在该函数下可以将缓
存对象直接返回给客户端,即执行deliver操作。也可以不使用本地缓存对象,
从后端服务器获取请求对象,即执行pass操作。 如果本地没有该缓存对象,则表
示缓存丢失,则会接受vcl_miss函数检查。该函数会从后端服务器获取最新资源,
即将会执行pass或fetch操作。
3、如果在vcl_recv函数执行pass操作,则表示不再本地缓存查找,直接从后端服务器
进行获取,即将会接受vcl_pass函数的检查。
4、如果在vcl_recv函数处执行pipe操作,则表示不再本地缓存中查找,并且客户端和
后端服务器建立管道,后续客户端的keep-alive连 接中的请求数据传输将在管道中进行,
并且请求数据接受vcl_pipe函数的检查。直到数据传输完成时关闭该管道连接。
5、当需要从后端服务器获取资源或数据时,需要调用vcl_fetch函数,并且根据某种条
件判断该数据或资源是否缓存在本地,即执行deliver操 作;或者直接将该资源返回给客
户端,不缓存在本地,即执行hit_for_pass操作 最后,不管是从本地缓存中响应的数据
还是从后端原始服务器获取到的数据返回给客户端都需要调用vcl_deliver函数来完成。
正文:
这里我们使用一台物理机和三台虚拟机进行实验
主机:172.25.68.250
server1:172.25.68.1 (使用varnish工具实现CDN的节点集群)
server2 172.25.68.2 (充当后台的服务器)
server3 172.25.68.3 (充当后台的服务器)
在varnish的缓存原理简单分为以下两种:
当varnish上灭有用户想要请求数据的缓存时
--------------------------------------------------------
Client -> dns -> cdn -> server -> cdn -> cache -> Client
当varnish 上具有用户的缓存时
--------------------------------------------------------
Client ->dns ->cdn ->cache -> Client
一、对Vatnish进行软件的下载和相关服务的配置
1、进行varnish软件的安装
yum install varnish-* -y ###进行varnish相关软件的安装
2、进行varnish监听端口的设定
vim /etc/sysconfig/varnish ###进行varnish监听端口的修改
3、进行主机安全限制文件的修改(保证流量大时,服务器可以正常工作)
打开文件的最大数:有如下关系:内核操作>操作系统>软件
内核允许的打开文件的最大数:
(1)、进行varnish打开文件数的查看
(2)、进行内存的修改,时内核打开的文件数大于varnish打开的软件数
(3)、进行主机安全的限制
vim /etc/security/limits.conf ###进行主机安全文件的配置
4、默认配置文件的修改和服务的开启和服务端口是否开启
vim /etc/varnish.default.vcl ###进行默认配置文件的编辑
/etc/init.d/varnish start ###进行服务的开启
netstat -tnlp ###进行端口的查看
二、在后台服务器进行相关的配置
在server2主机上进行httpd 软件的安装和服务的开启和默认发布文件的编辑
1、进行软件的安装和服务的启动
yum install httpd -y ###进行httpd 软件的安装
/etc/init.d/httpd start ###进行软件服务的开启
2、进行默认发布文件的编辑
vim /var/www/html/index.html ###进行默认发布文件的编辑
三、在真机上进行相应的测试(判断varnish是否完成代理功能)
四、进行缓存是否名命中的查看
在server1中:
1、在配置文件中进行相应的设定进行服务的重新加载
vim /etc/varnish/default.vcl ###进行配置文件的编辑
/etc/init.d/varnish reload ###进行varnish的重新加载
2、进行是否击中的测试
curl -I 172.25.68.1 ###进行是否击中的查看
varnishadm ban.url .*$ ###进行缓存的清除
当用户进行第一次访问时:没有缓存(可以看到没有进行击中)
当用户进行第二次访问时:此时具有缓存,(可以看到被击中)
3、在真机上进行本地解析的设定,查看使用域名是否击中的测试
vim /etc/hosts ###进行本地解析的设定
curl -I www.westos.org ###通过域名进行服务器的访问,查看是否击中
第一次进行访问时,没有缓存,没有击中:
进行第二次访问时,已经具有了缓存,结果击中
注意的是:缓存存在的时间为120s,我没可以在配置文件可以进行设定
我们可以通过varnishadm进行手动清除缓存
在varnish服务端(server1)进行缓存的清除,然后在客户端进行测试
varnishdam ban.url .*$ :清除所有的缓存
varnishdam ban.url /index.html :清除页面的缓存
五、定义多个不同域名站点的后端服务器
1、进行Varnish配置文件的编辑
vim /etc/varnish/default.vcl ###进行配置文件的编辑
/etc/init.d/varnish reload ###进行服务的重新加载
2、在真机上进行本地解析的设定
3、在server3上进行apache软件的安装和默认发布文件的编辑
yum install httpd -y ###进行apache软件的安装
vim /var/www/html/index.html ###进行默认发布文件的编辑
/etc/init.d/httpd start ###进行apache软件的启动
4、在真机上进行相关的测试:
当访问其他的页面时进行报错:
我们可以观察到:通过不同的域名进行访问时,varnish会根据不同的
域名访问不同的服务器
六、实现负载均衡的轮番
1、在Varnish配置文件中进行相关的设定
2、在server3进行相关的配置
(1)进行apache配置文件的修改
vim /etc/httpd/conf/httpd.conf ###进行apache配置文件的编辑
(2)进行发布目录和文件的建立
mkdir /www /bbs ###进行发布目录的建立
vim /www/index.html ###进行发布文件的编辑
vim /bbs/index.html ###进行发布文件的编辑
(3)进行服务的重启和Varnish服务的重新加载
/etc/init.d/httpd restart ###进行服务的重启
/etc/init.d/varnish reload ###进行服务的重新加载
3、在真机上进行相关的测试
通过测试我们可以看到:在主机进习www.westos.org时,实现负载均衡的轮询
,当访问bbs.westos.org时,访问指定的服务器的特定的资源,与配置文件所设定的
一致。
七、使用bansys.zip进行批量推送清除缓存
在server1中
1、进行相关软件的下载
2、进行压缩包的解压(这里我们不介绍解压过程)
unzip bansys.zip -d /var/www/html ###进行压缩包的解压
ls /var/www/html ###进行压缩包解压之后结果的查看
3、对配置文件进行编辑
vim /rvar/www/html/config.conf ###进行配置文件的编辑
4、进行httpd服务端口的改变(因为varnish已经占用了80端口)
vim /etc/httpd/conf/httpd.conf ###进行httpd配置文件的编辑
5、对varnish配置文件进行编辑
vim /etc/varnish/default.vcl ###进行varnish配置文件的编辑
6、进行httpd服务的重启和varnish服务的重新加载
/etc/init.d/httpd restart ###进行httpd服务的重启
/etc/init.d/varnish reload ###进行服务的重新加载
7、进行测试
在真机的浏览器中:172.25.68.1:8080
(1)这里我们选择httpd进行推送,设定的为8080端口
推送内容为:.*$(用于缓存的清除)
查看缓存信息是否被清除:通过curl www.westos.org 进行是否击中测定,
通过测试,可以看到缓存已经被清除
(2)如果选择talnet模式,则需要如下配置
telnet 模式需要关闭 varnish 服务管理端口的验证,
注释掉/etc/sysconfig/varnish 文件中的 “ -S ${VARNI
SH_SECRET_FILE}”这行,重启 varnish 服务即可
8、在真机上进行相关的测试
通过推送清除进行再次访问时,可以看到缓存已经被清除
Vanish搭建CDN的节点集群相关推荐
- docker-compose 搭建 nats-streaming 3节点集群
nats-streaming-cluster Nats-Streaming Cluster By Docker Compose Nats-Streaming Cluster By Kubernetes ...
- 搭建Kubernetes多节点集群
文章目录 1. 实验环境 2. 系统网络配置 3. 修改节点Hostname 4. 关闭防火墙.SeLinux.Swap分区 5. 设置docker和k8s的yum源 5.1 docker源的配置 5 ...
- hadoop 多节点集群_设置Apache Hadoop多节点集群
hadoop 多节点集群 我们正在分享有关在基于Linux的机器(多节点)上安装Apache Hadoop的经验. 在这里,我们还将分享我们在各种故障排除方面的经验,并在将来进行更新. 用户创建和其他 ...
- 设置Apache Hadoop多节点集群
我们正在分享有关在基于Linux的机器(多节点)上安装Apache Hadoop的经验. 在这里,我们还将分享我们在各种故障排除方面的经验,并在将来进行更新. 用户创建和其他配置步骤– 我们首先在每个 ...
- 【Docker系列】Docker Swarm 多节点集群
三节点集群搭建 创建3节点swarm cluster的方法 https://labs.play-with-docker.com/ play with docker 网站, 优点是快速方便,缺点是环境不 ...
- SpringCloud 使用Docker搭建Consul节点集群
一.Docker 环境Consul 集群搭建 1,准备工作,为后面要创建的容器准备consul数据卷 我们在linux 主机上任意一个目录下创建三个不同的目录,为后面创建容器时创建不同的数据容器卷使用 ...
- ActiveMQ的多节点集群
概述 基于zookeeper和LevelDB搭建ActiveMQ集群. 集群仅提供主备方式的高可用集群功能,避免单点故障. 集群实现方案 基于shareFileSystem共享文件系统(KahaDB) ...
- Ambari安装之部署单节点集群
前期博客 大数据领域两大最主流集群管理工具Ambari和Cloudera Manger Ambari架构原理 Ambari安装之Ambari安装前准备(CentOS6.5)(一) Ambari安装之部 ...
- 利用kubeadm安装kubernetes1.21.2单节点集群
利用kubeadm安装kubernetes集群 环境: 1.关闭防火墙, 2.配置好/etc/hosts k8s-master:192.168.248.128 k8s-node01: 192.168. ...
最新文章
- 1.2、什么是函数?什么是方法
- python库学习笔记——分组计算利器:pandas中的groupby技术
- CG CTF WEB 签到2
- php 导出csv设置列宽度,php数据库导出excel表格数据-php从数据库导出csv格式的Excel表格是,字段本身就......
- Sencha Touch 给 Panel 注册点击事件(tap)和其他touchstart,touchend 等事件
- 七年级上册计算机教学反思,七年级信息技术上册教学反思范文.docx
- 怎么把竖线去掉_3小时完成一个logo设计,我是怎么做到的?
- javascript中定时器interval的使用
- 20世纪50年代开始,数字技术出现,数字计算机开始代替模拟计算机,我们从电气时代逐渐走到了信息时代,电脑重塑了社会的架构与价值。...
- 一种基于memcache或redis缓存架构的验证码
- [20180423]表空间闪回与snapshot standby
- VS2015 更换exe的图标
- 基于SSM 的图书馆管理系统
- 吞食天地2重制版巫妖王panny版存档_11年前的冷饭—Nintendo 任天堂 Switch《宵星传奇 重制版》评测...
- python图像差分法目标检测_OpenCV实现帧差法检测运动目标
- LeCun、Bengio、Hinton三巨头曾合体,Nature发文综述深度学习(论文精华)
- JavaScript实现解析xml文件数据
- dell台式计算机恢复出厂设置,戴尔电脑如何恢复出厂设置
- vue 高德获取当前经纬度
- Win10安装了Office右键没有新建Word,excel,PPT等选项解决方法
热门文章
- 使用超临界二氧化碳进行精密表面清洁
- [移动硬盘]笔记本移动硬盘盒选择
- 计算机的串口波特率,什么是波特率_波特率9600是什么意思_串口通信为什么要设置波特率?...
- 安鸾渗透telnet暴力破解
- 【解禁】钉钉直播回放下载
- C语言if-else逻辑——想通了,再碰到就是小菜一碟!
- 会计学原理学习笔记——第三章——账户与复式记账(3.2资金筹集业务的核算——借入资本的核算)
- 自选股同步:文华财经、同花顺、大智慧、通达信
- 首次发布!《5G移动通信基站电磁辐射环境监测方法》征求意见
- 升级版剪刀石头布(表格的处理方法)