用varnish搭建cdn节点集群

CDN

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

用varnish搭建cdn节点集群_第1张图片

用varnish实现cdn

在当前主流的Web架构中,Cache担任着越来越重要的作用。常见的基于浏览器的C/S架构,Web Cache更是节约服务器资源的关键。而最近几年由FreeBSD创始人之一Kamp开发的varnish更是一个不可多得的Web Cache Server。严格意义上说,Varnish是一个高性能的反向代理软件,只不过与其出色的缓存功能相比,企业更愿意使用其搭建缓存服务器。同时,由于其工作在Web Server的前端,有一部分企业已经在生产环境中使用其作为旧版本的squid的替代方案,以在相同的服务器成本下提供更好的缓存效果,Varnish更是作为CDN缓存服务器的可选服务之一。


安装scp软件包:

在server1主机上:
[root@server1 ~]# yum provides */scp
[root@server1 ~]# yum install openssh-clients-5.3p1-94.el6.x86_64 -y

用varnish搭建cdn节点集群_第2张图片

[root@foundation68 ~]# scp /home/kiosk/Desktop/*.rpm  [email protected]:/root

用varnish搭建cdn节点集群_第3张图片

配置一个后端服务器:

在server1主机:

[root@server1 ~]# yum install -y varnish
3.0.3-1.el6.x86_64.rpm varnish-libs-3.0.3-1.el6.x86_64.rpm  # 安装varnish软件包
[root@server1 ~]# cd /etc/varnish
[root@server1 varnish]# vim /etc/sysconfig/varnish  #更改端口

用varnish搭建cdn节点集群_第4张图片

[root@server1 varnish]# cd /lib64/security/
[root@server1 security]# vim /etc/security/limits.conf #限制处理文件的个数

这里写图片描述

[root@server1 security]# /etc/init.d/varnish start   #打开varnish
[root@server1 security]# cd /etc/varnish
[root@server1 varnish]# vim default.vcl  #添加配置文件

用varnish搭建cdn节点集群_第5张图片

[root@server1 varnish]# /etc/init.d/varnish reload   #刷新varnish

用varnish搭建cdn节点集群_第6张图片

在server2主机上:

[root@server2 ~]# yum install httpd -y   # 下载httpd
[root@server2 ~]# /etc/init.d/httpd start   #开启httpd服务
[root@server2 ~]# cd /var/www/html
[root@server2 html]# vim index.html    #写入解析
     www.westos.org

在物理主机上:

[root@foundation68 ~]# vim /etc/hosts
写入:   172.25.40.1 www.westos.org

在网页上访问:172.25.68.1
用varnish搭建cdn节点集群_第7张图片

用varnish搭建cdn节点集群_第8张图片
小结:网页测试出问题有以下几种情况:
1.没有开启httpd服务,没有关闭火墙
2.配置文件内IP或内容编写错误
3.未刷新varnish服务
4.如果以上都正确,需将varnish服务先关闭,再开启,再次刷新即可


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

再建立一个主机test3:

在物理主机上:
[root@foundation40 ~]# cd /var/lib/libvirt/images/
[root@foundation40 images]# qemu-img create -f qcow2 -b rhel6.5.qcow2 test3
在test3上:
先配置一个IP172.25.68.3  设置主机名为:server3
[root@server3 ~]# yum install httpd -y   #安装httpd
[root@server3 ~]# /etc/init.d/httpd start  #开启服务
[root@server3 ~]# cd /var/www/html
[root@server3 html]# vim index.html
写入: bbs.westos.org

在server1主机上:

[root@server1 varnish]# cd /etc/varnish
[root@server1 varnish]# vim default.vcl

用varnish搭建cdn节点集群_第9张图片

[root@server1 varnish]# /etc/init.d/varnish reload  #刷新varnish

在物理主机上:

[root@foundation68 images]# vim /etc/hosts  #写入解析
    172.25.40.1 www.westos.org bbs.westos.org
[root@foundation68 images]# curl bbs.westos.org/index.html -I  #测试

这里写图片描述
用varnish搭建cdn节点集群_第10张图片


定义负载均衡

在server3主机上:

[root@server3 html]# vim /etc/httpd/conf/httpd.conf 

用varnish搭建cdn节点集群_第11张图片
用varnish搭建cdn节点集群_第12张图片

[root@server3 html]# mkdir /www1
[root@server3 html]# cd /www1
[root@server3 www1]# ls
[root@server3 www1]# vim index.html
写入: www.westos.org - server3
[root@server3 www1]# vim /etc/hosts   #写入内容如下图
[root@server3 www1]# /etc/init.d/httpd restart   #重启httpd

用varnish搭建cdn节点集群_第13张图片

在server2主机上:
[root@server2 html]# vim /var/www/html/index.html 
www.westos.org  -  server2

在server3主机上:

[root@server1 varnish]# cd /etc/varnish
[root@server1 varnish]# vim default.vcl   #写入内容如下图

用varnish搭建cdn节点集群_第14张图片

[root@server1 varnish]# /etc/init.d/varnish reload  #刷新
[root@server1 varnish]# varnishadm ban.url /index.html   #清空index.html页面缓存120后从0开始

用varnish搭建cdn节点集群_第15张图片
在物理主机上:

[root@foundation68 ~]# curl www.westos.org/index.html

用varnish搭建cdn节点集群_第16张图片
注意:
在/etc/varnish/default.vcl中写入return(pass)是为了测试方便,不进行缓存的
不加return(pass)说明一个网址是会缓存120秒的,若120后再次访问会重新缓存。


cdn 推送平台

首先将server1,server2,server3主机上的httpd服务开启
其次将server1的varnish服务开启
做以下步骤:

[root@server1 ~]# yum install httpd -y  #安装httpd
[root@server1 ~]# /etc/init.d/httpd start  #开启服务
[root@server1 varnish]# /etc/init.d/varnish start  #打开varnish
[root@server1 ~]# vim /etc/httpd/conf/httpd.conf  #更改端口

这里写图片描述

[root@server1 ~]# /etc/init.d/httpd restart   #重启httpd
[root@server1 ~]# yum install -y php   #安装php
[root@server1 ~]# yum install -y unzip  #安装unzip解压命令

这里写图片描述

[root@server1 ~]# unzip bansys.zip -d /var/www/html  #将bansys的解压包移动到/var/www/html路径下
[root@server1 ~]# cd /var/www/html
[root@server1 html]# ls    
[root@server1 html]# cd bansys
[root@server1 bansys]# ls
[root@server1 bansys]# mv * ..  #移动所有压缩包到上层目录
[root@server1 bansys]# cd ..
[root@server1 html]# ls
[root@server1 html]# vim config.php  #内容如下
[root@server1 html]# /etc/init.d/httpd restart

用varnish搭建cdn节点集群_第17张图片
用varnish搭建cdn节点集群_第18张图片

网页访问172.25.68.1:8080
用varnish搭建cdn节点集群_第19张图片

[root@server1 html]# cd /etc/varnish
[root@server1 varnish]# vim default.vcl 

[root@server1 varnish]# /etc/init.d/varnish restart
如果更改完文件varnish重启失败,是文件里的内容出错

用varnish搭建cdn节点集群_第20张图片
用varnish搭建cdn节点集群_第21张图片

实验测试:

1.在物理主机上先看到的是没有推送平台的访问网址
这里写图片描述
2.访问172.25.68.1:8080 (server1主机IP)
用varnish搭建cdn节点集群_第22张图片
用varnish搭建cdn节点集群_第23张图片
3.返回物理主机查看,更改网址
这里写图片描述
4.以此类推,每推送一次,就会将网址更新一次

你可能感兴趣的:(用varnish搭建cdn节点集群)