企业级 ##Varnish构建CDN节点##

这里写图片描述

CDN网络简介:

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

(1)squid

(2)varnish

(3)Nginx+memcache

一.配置实验环境(封装虚拟机):

1.配置yum源:
镜像:rhel-server-6.5-x86_64-dvd.iso

[root@foundation48 ~]# mkdir /rhel6.5
[root@foundation48 ~]# mv /home/kiosk/Desktop/*.iso /iso
[root@foundation48 ~]# mount /iso/rhel-server-6.5-x86_64-dvd.iso  /rhel6.5
[root@foundation48 ~]# mkdir /var/www/html/rhel6.5
[root@foundation48 ~]# mount /iso/rhel-server-6.5-x86_64-dvd.iso  /var/www/html/rhel6.5
[root@foundation48 ~]# vim /etc/rc.d/rc.local
    编辑内容: mount /iso/rhel-server-6.5-x86_64-dvd.iso  /var/www/html/rhel6.5
[root@foundation40 ~]# chmod +x /etc/rc.d/rc.local

企业级 ##Varnish构建CDN节点##_第2张图片
2.创建虚拟机母本:
(1)通过命令启动虚拟机管理器:
这里写图片描述
企业级 ##Varnish构建CDN节点##_第3张图片

(2)选择按钮这里写图片描述打开新建页面:
企业级 ##Varnish构建CDN节点##_第4张图片
注意:当前镜像在本机里,选择本地启动

(3)选择系统类型,添加镜像地址:
企业级 ##Varnish构建CDN节点##_第5张图片

(4)选择内存大小(不要图形安装,节省资源):
企业级 ##Varnish构建CDN节点##_第6张图片

(5)选择硬盘大小:
企业级 ##Varnish构建CDN节点##_第7张图片

(6)确定安装配置信息:
企业级 ##Varnish构建CDN节点##_第8张图片

(7)安装选项过程:
a:启动界面
企业级 ##Varnish构建CDN节点##_第9张图片
企业级 ##Varnish构建CDN节点##_第10张图片
b:选择英文,美式键盘
企业级 ##Varnish构建CDN节点##_第11张图片
企业级 ##Varnish构建CDN节点##_第12张图片
c:初始化所有
企业级 ##Varnish构建CDN节点##_第13张图片
d:选择时区
企业级 ##Varnish构建CDN节点##_第14张图片
e:设置超级用户密码(redhat)
企业级 ##Varnish构建CDN节点##_第15张图片
企业级 ##Varnish构建CDN节点##_第16张图片
f:确认储存母本
企业级 ##Varnish构建CDN节点##_第17张图片
企业级 ##Varnish构建CDN节点##_第18张图片
g:开始安装母本
企业级 ##Varnish构建CDN节点##_第19张图片
企业级 ##Varnish构建CDN节点##_第20张图片
h:启动成功
企业级 ##Varnish构建CDN节点##_第21张图片

3.配置虚拟机母本:
(1)删除eth0网络文件【用母本建立虚拟机时,ip不会乱】
企业级 ##Varnish构建CDN节点##_第22张图片
(2)配置母本IP地址
a:查看主机IP[设置到同一网段]
企业级 ##Varnish构建CDN节点##_第23张图片
b:编辑配置文件
这里写图片描述
企业级 ##Varnish构建CDN节点##_第24张图片
c:重启网络
企业级 ##Varnish构建CDN节点##_第25张图片
(3)激活
这里写图片描述
企业级 ##Varnish构建CDN节点##_第26张图片
(4)检测yum源是否导入
【真机】:
企业级 ##Varnish构建CDN节点##_第27张图片
【母本虚拟机】:
企业级 ##Varnish构建CDN节点##_第28张图片
当repolist的数值不等于零时,说明安装源成功导入
(5)安装基本的vim服务和lftp服务
这里写图片描述
这里写图片描述
(6)添加子虚拟机的主机名与IP
这里写图片描述
企业级 ##Varnish构建CDN节点##_第29张图片
这里写图片描述
(6)关闭SELINUX
这里写图片描述
企业级 ##Varnish构建CDN节点##_第30张图片
(7)关闭母本虚拟机【注意:不要再打开,一旦打开,封装会失败】
这里写图片描述
这里写图片描述

4.利用母本创建子虚拟机:
(1)用母本文件复制创建子虚拟机文件
企业级 ##Varnish构建CDN节点##_第31张图片
(2)安装子虚拟机server1
a:选择磁盘启动
企业级 ##Varnish构建CDN节点##_第32张图片
b:添加路径,选择系统类型
企业级 ##Varnish构建CDN节点##_第33张图片
c:添加内存与CPU大小
企业级 ##Varnish构建CDN节点##_第34张图片
d:确认配置信息
企业级 ##Varnish构建CDN节点##_第35张图片
e:安装成功
企业级 ##Varnish构建CDN节点##_第36张图片

二.用Varnish搭建CDN系统:

【客户端】————【真机】——————【IP】172.25.48.250/24
【varnish端】(中间服务器)——【server1】———–【IP】172.25.48.1
【服务端】(后端服务器)———【server2】————【IP】172.25.48.2
企业级 ##Varnish构建CDN节点##_第37张图片
1.处理过程:
这里写图片描述
(1)Receive 状态,也就是请求处理的入口状态,根据 VCL 规则判断该请求应该是 Pass 或
Pipe,或者进入 Lookup(本地查询)。
(2)Lookup 状态,进入此状态后,会在 hash 表中查找数据,若找到,则进入 Hit 状态,否则进
入 miss 状态。
(3)Pass 状态,在此状态下,会进入后端请求,即进入 fetch 状态。
(4)Fetch 状态,在 Fetch 状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地
的存储。
(5)Deliver 状态, 将获取到的数据发送给客户端,然后完成本次请求。
企业级 ##Varnish构建CDN节点##_第38张图片

2.撘建过程:
(1)用封装虚拟机的方法封装两台虚拟机【server1】【server2】
【server1】 IP:172.25.48.1
【server2】 IP:172.25.48.2
a:修改IP命令:
这里写图片描述
b:编辑文件:
企业级 ##Varnish构建CDN节点##_第39张图片
c:重启网络:
企业级 ##Varnish构建CDN节点##_第40张图片

(2)用真机连接两台虚拟机
企业级 ##Varnish构建CDN节点##_第41张图片
企业级 ##Varnish构建CDN节点##_第42张图片

(3)【server1】安装scp服务,用真机发送varnish安装包到【server1】

===================================================================

在【server1】中安装varnish服务,使【server1】成为CDN中的varnish端(中间服务器)

====================================================================
a:查看scp服务安装包:
企业级 ##Varnish构建CDN节点##_第43张图片
b:使用yum命令进行安装:
企业级 ##Varnish构建CDN节点##_第44张图片
c:在主机用scp将安装包发送到【server1】上:
企业级 ##Varnish构建CDN节点##_第45张图片
d:在【server1】中安装varnish服务:
企业级 ##Varnish构建CDN节点##_第46张图片

(4)在【server1】中配置 varnish 服务端口
这里写图片描述
企业级 ##Varnish构建CDN节点##_第47张图片

(5)修改CPU最大处理能力限制
a:修改配置文件
这里写图片描述
企业级 ##Varnish构建CDN节点##_第48张图片
b:重启服务
这里写图片描述
c:检测–>如果出现80则修改成功
企业级 ##Varnish构建CDN节点##_第49张图片

(6)在【server2】中下载httpd服务,编写数据www.westos.org
a:下载httpd服务
企业级 ##Varnish构建CDN节点##_第50张图片
b:重启httpd服务
这里写图片描述
c:编辑数据包
这里写图片描述
编辑内容:www.westos.org

企业级 ##Varnish构建CDN节点##_第51张图片

(7)在【server1】中varnish配置文件中添加主服务器【server2】的IP地址
企业级 ##Varnish构建CDN节点##_第52张图片
企业级 ##Varnish构建CDN节点##_第53张图片
重启服务:
企业级 ##Varnish构建CDN节点##_第54张图片
(8)在客户端【真机】中进行域名解析
这里写图片描述
企业级 ##Varnish构建CDN节点##_第55张图片
(9)配置查看缓存命中情况
a:配置文件
这里写图片描述
企业级 ##Varnish构建CDN节点##_第56张图片
b:重启服务
企业级 ##Varnish构建CDN节点##_第57张图片
(10)测试缓存命中
注意:测试前 【真机】防火墙关闭,httpd服务打开
【server1】varnish服务重启,防火墙关闭
【server2】防火墙关闭,httpd服务打开
a:真机网页测试
企业级 ##Varnish构建CDN节点##_第58张图片
企业级 ##Varnish构建CDN节点##_第59张图片
b:真机缓存命中测试
未命中:
企业级 ##Varnish构建CDN节点##_第60张图片
命中:
企业级 ##Varnish构建CDN节点##_第61张图片

三.定义多个不同域名站点的后端服务器:

1.封装一个子虚拟机【server3】
(1)配置【server3】的IP地址172.25.48.3
安装httpd服务
关闭火墙
用真机连接【server3】,这是第二台后端服务器
(2)写入数据包
这里写图片描述

这里写图片描述

2.在【server1】中添加后端服务器【server3】信息,与命中缓存限定条件
这里写图片描述
限定条件:www.westos.org 与 bbs.westos.org可以连接缓存,其他的报错
企业级 ##Varnish构建CDN节点##_第62张图片
企业级 ##Varnish构建CDN节点##_第63张图片
3.在真机里域名解析
这里写图片描述
企业级 ##Varnish构建CDN节点##_第64张图片
4.在真机中测试
(1)测试ip输入查看缓存
【在server1配置文件中限制,IP不能进行查看数据包缓存】
企业级 ##Varnish构建CDN节点##_第65张图片
(2)测试www.westos.com输入查看缓存
【成功】
企业级 ##Varnish构建CDN节点##_第66张图片
(3)测试bbs.westos.com输入查看缓存
【成功】
企业级 ##Varnish构建CDN节点##_第67张图片

四.定义负载均衡:

负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
1.配置服务器【server3】的httpd文件:
a:配置命令
这里写图片描述
b:编辑内容
企业级 ##Varnish构建CDN节点##_第68张图片
企业级 ##Varnish构建CDN节点##_第69张图片
c:重启httpd服务
企业级 ##Varnish构建CDN节点##_第70张图片
2.在【server3】服务器中添加数据包:
企业级 ##Varnish构建CDN节点##_第71张图片
企业级 ##Varnish构建CDN节点##_第72张图片
2.在【server3】服务器中编写本地解析:
这里写图片描述
企业级 ##Varnish构建CDN节点##_第73张图片
3.在【server1】varnish文件中编辑web1和web2:
这里写图片描述
企业级 ##Varnish构建CDN节点##_第74张图片
企业级 ##Varnish构建CDN节点##_第75张图片
4.在真机中检测:
(1)检测全为www.westos.org{因为这是缓存下来的}
企业级 ##Varnish构建CDN节点##_第76张图片
(2)手动清理缓存
这里写图片描述
(3)检测出新添加的数据包
这里写图片描述
5.为了能更好的实验,不让缓存影响实验结果:【添加return(pass);】
这里写图片描述
企业级 ##Varnish构建CDN节点##_第77张图片
6.在【sever1】中重启varnish服务:
企业级 ##Varnish构建CDN节点##_第78张图片
7.在真机测试会进行一直转换因为没有进行缓存:
企业级 ##Varnish构建CDN节点##_第79张图片

五.缓存推送【实时更新】:

服务端定点清除缓存,让客户端实时更新
1.在【server1】中下载httpd,php,unzip服务:
企业级 ##Varnish构建CDN节点##_第80张图片
这里写图片描述
这里写图片描述

2.修改httpd服务端口,改为8080
这里写图片描述
企业级 ##Varnish构建CDN节点##_第81张图片

3.下载bansys.zip的压缩包并解压到http的默认发布目录下
企业级 ##Varnish构建CDN节点##_第82张图片
企业级 ##Varnish构建CDN节点##_第83张图片

将解压好的所有文件移动到阿帕奇默认发布目录下才可以被访问到
企业级 ##Varnish构建CDN节点##_第84张图片

4.编辑php配置文件,定义varnish群组
这里写图片描述
企业级 ##Varnish构建CDN节点##_第85张图片
这里写图片描述

5.查看8080端口是否修改成功,并且进行检测
企业级 ##Varnish构建CDN节点##_第86张图片
真机火狐上————————————>172.25.39.1:8080
企业级 ##Varnish构建CDN节点##_第87张图片

6.编辑varnish端配置文件
企业级 ##Varnish构建CDN节点##_第88张图片
设置访问控制:
企业级 ##Varnish构建CDN节点##_第89张图片

#bansys 有两种工作模式,分别是:telnet 和 http 模式。
#telnet 模式需要关闭 varnish 服务管理端口的验证,注释掉/etc/sysconfig/varnish 文件中的 “ -S $
{VARNISH_SECRET_FILE}”这行,重启 varnish 服务即可。
#如果是 http 模式需要对 varnish 做以下设置:

企业级 ##Varnish构建CDN节点##_第90张图片

重启varnish服务:
企业级 ##Varnish构建CDN节点##_第91张图片

7.在网页上测试能否连接上
企业级 ##Varnish构建CDN节点##_第92张图片

8.注释掉上一个实验的return()pass
企业级 ##Varnish构建CDN节点##_第93张图片
这里写图片描述

9.进行测试:
(1)在真机里访问服务端网址:
【只有server2,因为server2在120s限定时间内被缓存下来】
curl可以避免浏览器缓存的影响进行实验的测试
企业级 ##Varnish构建CDN节点##_第94张图片
(2)通过HTTP模式CDN推送缓存:
企业级 ##Varnish构建CDN节点##_第95张图片
企业级 ##Varnish构建CDN节点##_第96张图片

(3)再次在真机进行测试:(每次推送缓存均会改变测试域名时候的值):
企业级 ##Varnish构建CDN节点##_第97张图片

你可能感兴趣的:(企业级 ##Varnish构建CDN节点##)