CDN的全称是Content Delivery Network,即内容奋发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
搭建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
(2)选择按钮打开新建页面:
注意:当前镜像在本机里,选择本地启动
(7)安装选项过程:
a:启动界面
b:选择英文,美式键盘
c:初始化所有
d:选择时区
e:设置超级用户密码(redhat)
f:确认储存母本
g:开始安装母本
h:启动成功
3.配置虚拟机母本:
(1)删除eth0网络文件【用母本建立虚拟机时,ip不会乱】
(2)配置母本IP地址
a:查看主机IP[设置到同一网段]
b:编辑配置文件
c:重启网络
(3)激活
(4)检测yum源是否导入
【真机】:
【母本虚拟机】:
当repolist的数值不等于零时,说明安装源成功导入
(5)安装基本的vim服务和lftp服务
(6)添加子虚拟机的主机名与IP
(6)关闭SELINUX
(7)关闭母本虚拟机【注意:不要再打开,一旦打开,封装会失败】
4.利用母本创建子虚拟机:
(1)用母本文件复制创建子虚拟机文件
(2)安装子虚拟机server1
a:选择磁盘启动
b:添加路径,选择系统类型
c:添加内存与CPU大小
d:确认配置信息
e:安装成功
【客户端】————【真机】——————【IP】172.25.48.250/24
【varnish端】(中间服务器)——【server1】———–【IP】172.25.48.1
【服务端】(后端服务器)———【server2】————【IP】172.25.48.2
1.处理过程:
(1)Receive 状态,也就是请求处理的入口状态,根据 VCL 规则判断该请求应该是 Pass 或
Pipe,或者进入 Lookup(本地查询)。
(2)Lookup 状态,进入此状态后,会在 hash 表中查找数据,若找到,则进入 Hit 状态,否则进
入 miss 状态。
(3)Pass 状态,在此状态下,会进入后端请求,即进入 fetch 状态。
(4)Fetch 状态,在 Fetch 状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地
的存储。
(5)Deliver 状态, 将获取到的数据发送给客户端,然后完成本次请求。
2.撘建过程:
(1)用封装虚拟机的方法封装两台虚拟机【server1】【server2】
【server1】 IP:172.25.48.1
【server2】 IP:172.25.48.2
a:修改IP命令:
b:编辑文件:
c:重启网络:
(3)【server1】安装scp服务,用真机发送varnish安装包到【server1】
===================================================================
在【server1】中安装varnish服务,使【server1】成为CDN中的varnish端(中间服务器)
====================================================================
a:查看scp服务安装包:
b:使用yum命令进行安装:
c:在主机用scp将安装包发送到【server1】上:
d:在【server1】中安装varnish服务:
(5)修改CPU最大处理能力限制
a:修改配置文件
b:重启服务
c:检测–>如果出现80则修改成功
(6)在【server2】中下载httpd服务,编写数据www.westos.org
a:下载httpd服务
b:重启httpd服务
c:编辑数据包
编辑内容:www.westos.org
(7)在【server1】中varnish配置文件中添加主服务器【server2】的IP地址
重启服务:
(8)在客户端【真机】中进行域名解析
(9)配置查看缓存命中情况
a:配置文件
b:重启服务
(10)测试缓存命中
注意:测试前 【真机】防火墙关闭,httpd服务打开
【server1】varnish服务重启,防火墙关闭
【server2】防火墙关闭,httpd服务打开
a:真机网页测试
b:真机缓存命中测试
未命中:
命中:
1.封装一个子虚拟机【server3】
(1)配置【server3】的IP地址172.25.48.3
安装httpd服务
关闭火墙
用真机连接【server3】,这是第二台后端服务器
(2)写入数据包
2.在【server1】中添加后端服务器【server3】信息,与命中缓存限定条件
限定条件:www.westos.org 与 bbs.westos.org可以连接缓存,其他的报错
3.在真机里域名解析
4.在真机中测试
(1)测试ip输入查看缓存
【在server1配置文件中限制,IP不能进行查看数据包缓存】
(2)测试www.westos.com输入查看缓存
【成功】
(3)测试bbs.westos.com输入查看缓存
【成功】
负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
1.配置服务器【server3】的httpd文件:
a:配置命令
b:编辑内容
c:重启httpd服务
2.在【server3】服务器中添加数据包:
2.在【server3】服务器中编写本地解析:
3.在【server1】varnish文件中编辑web1和web2:
4.在真机中检测:
(1)检测全为www.westos.org{因为这是缓存下来的}
(2)手动清理缓存
(3)检测出新添加的数据包
5.为了能更好的实验,不让缓存影响实验结果:【添加return(pass);】
6.在【sever1】中重启varnish服务:
7.在真机测试会进行一直转换因为没有进行缓存:
服务端定点清除缓存,让客户端实时更新
1.在【server1】中下载httpd,php,unzip服务:
3.下载bansys.zip的压缩包并解压到http的默认发布目录下
5.查看8080端口是否修改成功,并且进行检测
真机火狐上————————————>172.25.39.1:8080
#bansys 有两种工作模式,分别是:telnet 和 http 模式。
#telnet 模式需要关闭 varnish 服务管理端口的验证,注释掉/etc/sysconfig/varnish 文件中的 “ -S $
{VARNISH_SECRET_FILE}”这行,重启 varnish 服务即可。
#如果是 http 模式需要对 varnish 做以下设置:
9.进行测试:
(1)在真机里访问服务端网址:
【只有server2,因为server2在120s限定时间内被缓存下来】
curl可以避免浏览器缓存的影响进行实验的测试
(2)通过HTTP模式CDN推送缓存: