cdn

一.封装一个6.5版本的redhat linux安装过程和7以上的版本有所不同,

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
因为选择的是网络安装,因为eth0问题导致无法安装,原因的没dhcp源,所以本地安装
安装号之后配置yum源
这里写图片描述
网络配置:

vi /etc/sysconfig/network-scripts/ifcg-eth0

添加本地解析,后边以此为母盘新建虚拟机使用

vi /etc/hosts

这里写图片描述
关闭防火墙
网络通了以后安装vim工具

chkconfig iptables off

关闭selinx

vim /etc/sysconfig/selinux

这里写图片描述
添加sdn解析

vim /etc/sysconfig/network

这里写图片描述

删除这些文件

rm -fr /etc/ssh/ssh_host_*

最后poweroff关机不是reboot,reboot设置会恢复,删除该虚拟机,但不删除镜像文件,
真机执行命令,清除虚拟机换存

[root@foundation51 Desktop]# cd /var/lib/libvirt/images/
[root@foundation51 images]# virt-sysprep -d rhel6.5

这里写图片描述
至此虚拟机封装完成,删除虚拟机,保留镜像

这里写图片描述

这里写图片描述

二.利用母盘新建虚拟机镜像server-ip12 ,13,14

这里写图片描述

安装

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
其他同此步骤
这里写图片描述

配置网络

每台虚拟机操作一样,这里以server-ip14为例
添加dns
这里写图片描述

vim /etc/sysconfig/network-scripts/ifcfg-eth0

这里写图片描述
最后重启网络

/etc/init.d/network restart

这里写图片描述
完成后ssh连接,开始下一步实验
这里写图片描述

cdn

varnish-3.0.5-1.el6.x86_64.rpm
varnish-libs-3.0.5-1.el6.x86_64.rpm
把准备好的安装包考到server-ip12的/opt下,yum intsall varnish-*安装

这里写图片描述

cat /etc/sysconfig/varnish
如图,第八行显示的是cdn换存最大文件数13107

这里写图片描述

sysctl -a | grep file-max ##显示内核最大支持的换存文件数371487
/etc/pam.d/ 这里边放的是认证文件

这里写图片描述

/lib64/security/  ##这里边是一些认证模块

这里写图片描述

/etc/security/  ##这里边是一些认证配置文件

这里写图片描述

vim /etc/security/limits.conf
--->>最后一行
varnish     -   nofile    65535    ##使用者varnish(/etc/passwd有个非交互式用户varnish   - 软上限和硬上限两种类型   最大文件数 )

ulimit这个命令可以查看

vim /etc/sysconfig/varnish  ##因为测试http服务所以设置80端口

这里写图片描述

 [root@server-ip12 varnish]# vim /etc/varnish/default.vcl   ##设置端口号80和后端服务器的ip

这里写图片描述

/etc/init.d/varnish start ##开启varnish服务

在server-ip12和server-ip13上装http服务并开启
在server-ip13上写测试页

这里写图片描述

在访问server-ip12的时候会显示server-13的内容
这里写图片描述
这里写图片描述

三:查看换缓存命中情况

真机浏览器所在的主机/etc/hosts添加本地解析

172.25.254.12 www.westos.org bbs.westos.org
vim /etc/varnish/default.vcl 

这里写图片描述
真机测试,第一次换存没找到于是经varnish去13服务器寻找,找到后换存起来,再次访问www.westos.org直接返回客户端
这里写图片描述

四:负载均衡:定义多个不同域名站点的后端服务器

定义多个不同域名站点的后端服务器
backend web1 {
.host = “172.25.254.13”;
.port = “80”;
}
backend web2 {
.host = “172.25.254.14”;
.port = “80”;
}
当访问 www.westos.org 域名时从 web1 上取数据,访问 bbs.westos.org 域名时到 web2 取数据,
访问其他页面报错。
sub vcl_recv {
if (req.http.host ~ “^(www.)?westos.org”) {
set req.http.host = “www.westos.org”;
set req.backend = web1;
} elsif (req.http.host ~ “^bbs.westos.org”) {
set req.backend = web2;
} else {error 404 “westos cache”;
}
}

这里写图片描述
实验效果:
这里写图片描述
这里写图片描述

五:轮询

backend web1 {
.host = “172.25.254.13”;
.port = “80”;
}
backend web2 {
.host = “172.25.254.14”;
.port = “80”;
}
director lb round-robin{
{ .backend = web1; }
{ .backend = web2; }
}
sub vcl_recv {
if (req.http.host ~ “^(www.)?westos.org”)
{
set req.http.host = “www.westos.org”;
set req.backend = lb;
return (pass); #为了测试方便,不进行缓存
}
elsif (req.http.host ~ “^bbs.westos.org”)
{
set req.backend = web2;}
else
{error 404 “westos cache”;}
}

这里写图片描述
实验效果
这里写图片描述

六:通过 varnishadm 手动清除缓存

varnishadm ban.url .*$
   #清除所有
varnishadm ban.url /index.html
   #清除 index.html 页面缓存
varnishadm ban.url /admin/$
   #清除 admin 目录缓存

七:varnish cdn 推送平台

安装php插件
将/opt/varnish/下的 bansys.zip解压到apache默认发布目录中unzip bansys.zip -d /var/www/html/ 把解压后目录中的所有文件移动到html下
这里写图片描述

bansys 有两种工作模式,分别是:telnet 和 http 模式。
telnet 模式需要关闭 varnish 服务管理端口的验证,注释掉/etc/sysconfig/varnish 文件中的 “ -S $
{VARNISH_SECRET_FILE}”这行,重启 varnish 服务即可。
如果是 http 模式需要对 varnish 做以下设置:
这里写图片描述
修改刚才解压的文件
这里写图片描述
修改server-ip12的http端口为8080重启后测试
这里写图片描述

八虚拟主机:改回上一个实验的8080端口为80

这里写图片描述
这里写图片描述
浏览器主机已经解析了www.westos.org和bbs.westos.org

vim /etc/varnish/default.vcl 

这里写图片描述
这里写图片描述
实验测试当访问(www).westos.org的时候,回去访问web1也就是172.25.254.13
这里写图片描述
处理过程大致分为如下几个步骤:
(1)Receive 状态,也就是请求处理的入口状态,根据 VCL 规则判断该请求应该是 Pass 或Pipe,或者进入 Lookup(本地查询)。
(2)Lookup 状态,进入此状态后,会在 hash 表中查找数据,若找到,则进入 Hit 状态,否则进入 miss 状态。
(3)Pass 状态,在此状态下,会进入后端请求,即进入 fetch 状态。
(4)Fetch 状态,在 Fetch 状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地的存储。
(5)Deliver 状态, 将获取到的数据发送给客户端,然后完成本次请求。

cdn原理

基于上述实验说明:12充当了cdn的作用,当客户端51访问172.25.254.12的时候,cdn12主机接收到请求,从cdn中varnish换存中查找,如果有直接返回给客户端,12如果没有cdn去从隔壁cdn1站点获取,有返回客户端,如果没有直接去服务源站获取,换存到cdn本地,在返回给客户端:
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值