CDN的定义为内容分发网络,也就是加速的意思,大多数情况是用来提供网站加速服务。一般来说以资讯、内容等为主的网站,具有一定访问体量的网站。
CDN加速将网站的内容缓存在网络边缘(离用户接入网络最近的地方),然后在用户访问网站内容的时候,通过调度系统将用户的请求路由或者引导到离用户接入网络最近或者访问效果的缓存服务器上,有该缓存服务器为用户提供内容服务;相对于直接访问源站,这种方式缩短了用户和内容之间的网络距离,从而达到加速的效果。
所以来说企业去使用CDN对于用户的服务体验提升尤为重要,这里我们简单来说明一下如何使用VARNISH搭建CDN
varnish服务的下载和安装启用
下载
varnish服务是一款开源软件,可以通过官网直接下载:http://varnish-cache.org/
下载的类型有tgz格式的源码包和rpm包,一般来说使用rpm方便安装,


下载完成后得到的安装包

安装
当我们使用yum直接安装varnish时,会报错,还需要其他的依赖性,并且在官方的仓库中没有,需要去网上再下载

在网上搜索后找到需要的官方安装包下载下来

然后进行一起yum安装

安装后查看结果是否成功

varnish服务的配置文件:
/etc/ld.so.conf.d/varnish-x86_64.conf,主配置文件
/etc/logrotate.d/varnish,环境变量文件
/etc/varnish/default.vcl,默认配置语法文件

启用
首先查看它的启动脚本文件 /usr/lib/systemd/system/varnish.service

vim 进入查看信息:
首先是最大的支持的开启文件数,如果主机的内存过低会导致无法使用,主机系统的文件数可以使用sysctl -a |grep file查看

然后是运行varnish需要的内存大小,系统支持的内存使用命令:limit -a查看,如果过低需要去修改系统参数


接下来看启动时加载的信息
- /usr/sbin/varnishd,启动脚本
- -a :6081,指定端口
- -f /etc/varnish/default.vcl,指定读取的配置文件
- -s malloc,256m,锁定内存

这里需要将它的启动端口改为网络访问的默认端口80,因为我们配置的是供客户访问的CDN,作为反向代理,需要客户可以直接访问到这个主机,然后由我们配置的CDN去对服务器内容进行读取和缓存

完成后保存退出,这样配置文件就完成
然后去修改系统的参数,让系统允许varnish 的需求
编辑文件: vim /etc/security/limits.conf
在文件内容最后写入,写完后保存退出即可

启动varnish,查看开启的端口

然后去浏览器访问尝试
发现网页报错是因为我们没有设置发布页面,但是可以看到varnish服务提供的信息

CDN配置
首先需要去配置 /etc/varnish/default.vcl,新的版本vcl语法编辑需要在文件开头写入vcl4.1; / vcl4.0; 执行新的函数
这里是在其他人访问我们的varnish服务的80端口时,回去询问本机的8080端口

但是可以查看,本机上并不存在8080端口

这样我们可以对这个配置进行修改,改为另一台作为服务端主机的ip

然后在172.25.254.2 ,sever2主机上安装apache服务开启80端口,写一个简单的默认发布页面

注意要在sever2火墙上添加http的服务和80端口,否则是无法使用的
完成这些设置后,再去访问varnish主机172.25.254.1就可以看到172.25.254.2的默认发布页面,这样我们就完成了反向代理的设置

CDN缓存设置
编辑配置文件:vim /etc/varnish/default.vcl
需要编辑模块是:sub vcl_deliver
在这里写一个判定语句,如果缓存成功返回一句换,否则缓存另一句换

重启服务,使用命令在访问网站时查看状态信息:curl -I 172.25.254.1
第一次访问的结果是未缓存

第二次再访问就可以看到已经缓存过了,访问的内容是缓存的资源

缓存清除
缓存的默认清理时间是120s,但是如果服务端发布新的内容,CDN上就需要及时更新缓存,清理旧的缓存加载新的缓存
清理缓存的命令:varnishadm ban req.url “~” /
/ 表示清理所有的缓存,如果需要清理指定缓存可以在/后加指定的文件名

CDN反向代理多台服务端配置
配置文件: /etc/varnish/default.vcl,在添加一台服务端,帮助分流用户访问,并给每个服务端命名区分

在下面的 sub vcl_recv 模块里写入判断语句,针对访问两个不同服务端反馈不同的值 ,配置完后重启服务

同样在172.25.254.3主机上安装apache服务,写入一个默认发布页面区别于172.25.254.2,方便识别。

访问测试:
在测试主机上地址解析将两个域名都设置在172.25.254.1上,分别去访问两个域名得到不同的结果

CDN负载均衡配置
需要写的配置还是在:/etc/varnish/default.vcl
首先需要导入负载均衡的模块:import directors from “/usr/lib64/varnish/vmods/libvmod_directors.so”

然后需要写的配置文件通过查看帮助:man vmod_directors

我们也可以直接安装官方的方式写,将服务端名称改为我们设置的,并且将访问www.hello.com为轮换访问,参数return (pass)表示不缓存数据,不然的换出现的结果都会是一个

保存重启服务,然后进行测试
我们测试访问www.hello.com,出现的是www.hello.com和bbs.hello.com轮换出现

本文介绍如何使用Varnish搭建内容分发网络(CDN),包括安装、配置及缓存管理,实现网站加速和负载均衡。
754

被折叠的 条评论
为什么被折叠?



