Varnish搭建CDN内容分发网络

概述:

1.CDN内容分发网络

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

2.简述varnish

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

3.用varnish实现cdn的基本原理

图解:
在这里插入图片描述

处理过程:

(1)Receive状态:  也就是请求处理的入口状态,根据VCL规则判断该请求应该是Pass或Pipe,或者进入Lookup(本地查询)。
(2)Lookup状态:   进入此状态后,会在 hash 表中查找数据,若找到,则进入Hit状态,否则进入miss状态。
(3)Pass状态:     在此状态下,会进入后端请求,即进入fetch状态。
(4)Fetch状态:    在Fetch状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地的存储。
(5)Deliver状态:  将获取到的数据发送给客户端,然后完成本次请求。

特点:

Lookup:用于处理一般的数据;vcl_hash(ip哈希): 将ip与后端服务器绑定,即:同一台主机始终访问的是同一个后端服务器
Pass:  用于处理动态数据;vcl_backend(fetch): 后端查询 ,它不适合缓存
Pipe:  用于处理大文件

安装包:

varnish-3.0.5-1.el6.x86_64.rpm  
varnish-libs-3.0.5-1.el6.x86_64.rpm

实验环境:

server1   172.25.66.1      varnish服务器
server2	  172.25.66.2      后端服务器1(apache)
server3   172.25.66.3      后端服务器2(apache)
1.varnish的安装与基础配置

1.配置varnish服务端

#1.下载varnish安装包
[root@server1 mnt]# ls
varnish-3.0.5-1.el6.x86_64.rpm  varnish-libs-3.0.5-1.el6.x86_64.rpm
#2.安装varnish软件
[root@server1 mnt]# yum install -y varnish-*
#3.查看配置文件
[root@server1 mnt]# rpm -qc varnish
/etc/logrotate.d/varnish
/etc/sysconfig/varnish
/etc/varnish/default.vcl

在这里插入图片描述

#4.配置varnish服务端口
[root@server1 mnt]# vim /etc/sysconfig/varnish 
###################
66 VARNISH_LISTEN_PORT=80     #默认后端服务器为80(在浏览网址时默认访问的就是80端口,此时便无需在后边加80,形如: www.baidu.com:80)

在这里插入图片描述

#5.查看配置文件参数
[root@server1 mnt]# vim /etc/sysconfig/varnish 

在这里插入图片描述

#查看系统能打开的最大文件
[root@server1 mnt]# sysctl -a | grep file
fs.file-nr = 448	0	47361
fs.file-max = 47361`

在这里插入图片描述
发现问题:

1.varnish服务能打开的最大文件数目远远超过系统能打开的最大文件
2.最大锁定内存空间:82000
3.最大进程数:无限制

解决问题1:

1).更改varnish配置文件参数显然不合理,不提倡使用)
2).增加内存
#查看系统剩余内存
[root@server1 mnt]# free -m
             total       used       free     shared    buffers     cached
Mem:           490        190        299          0         11        125
-/+ buffers/cache:         54        436
Swap:          991          0        991

在这里插入图片描述
增加内存:
在这里插入图片描述

#再次查看系统能打开的最大文件
[root@server1 ~]# sysctl -a | grep file
fs.file-nr = 384	0	188466
fs.file-max = 188466

在这里插入图片描述
解决问题2和问题3:

[root@server1 ~]# vim /etc/security/limits.conf 
#################
varnish          -       nofile        131072        #最大文件主数
varnish          -       memlock       82000         #最大锁定内存空间
varnish          -       nproc         unlimited     #最大进程数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值