cdn服务之varnish

本文详细介绍了Varnish缓存加速器的部署与应用,包括环境搭建、配置优化、负载均衡、健康检查及CDN推送平台实现,通过实验展示如何有效减轻后端服务器压力,提升网站响应速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

varnish

介绍:varinsh是一款高性能的开源HTTP加速器,与一般的服务软件类似,就是一个web缓存代理器,分为master(manager)进程和child(worker,做cache工作).master进程读入命令,进行一些初始化,然后fork并监控child进程
child进程分配若干线程进行工作,包括一些管理线程和很多worker线程

工作原理(与squid类似,速度更高):请求varnish服务器的过程首先查看自己的缓存区,如
果命中,则直接返回给请求者,没有的话则去后端服务器去取数据,将取到的数据返回给请
求者,同时自己保留一份,当在遇到这样的请求可以直接发送给请求者,减小了后端服务器
的压力,varnish默认保存时间为120s,超过时间会清空,可根据实际的需要在varnish的配置
文件中修改停留时间

1,环境:

实验主机需要三台
server1 172.25.254.1  varnish
server2 172.25.254.2  apache
server3 172.25.254.3  apache

2,varnish部署:

server1:下载安装varnish安装包(依赖性文件一起安装)
yum install varnish-libs-3.0.5-1.el6.x86_64.rpm
yum install varnish-3.0.5-1.el6.x86_64.rp

 

修改监听端口为80(与http端口冲突可以修改http服务端口服务为8080)
vim /etc/sysconfig/varnish
VARNISH_LISTEN_PORT=80

更改varnish配置文件/etc/varnish/defaul.vcl

配置一个后端服务器,并重新加载服务

敲重点:修改过配值文件就要重新加载


srerver2上安装apache服务,并编写测试页面
测试:(物理机/etc/hosts上要有server2的解析)效果如图

实验二:测试缓存命中情况

修改server1的配置文件即可

重启服务
/etc/init.d/varnish restart


测试:

测试机上可以写本地解析vim /etc/hosts

测试效果:

注意:图中第一次并没有缓存所有MISS from westos cache
第二次显示HTTP from westos cache


补充1:可以通过varnishadm手动清除缓存
varnishadm ban.url .*$             清除所有
varnishadm ban.url /index.html   清除页面缓存
varnishadm ban.url /admin/$      清除目录缓存
补充2:访问curl -I 172.25.254.1和curl -I 172.25.254.1/index.html效果时一样的
但是这两条命令在缓存区生成不同的缓存
清除了页面缓存curl -I 172.25.254.1也会显示命中,
而执行curl -I 172.25.254.1/index.html会显示不命中

实验三:定义多个不同站点的后端服务器

1)server1上在原先的配置上再添一个后端服务器

服务器端务必重启

2)仿照server2的设置,在每一个后端服务器上安装http并编写测试页面
这里添加一个后端服务器server3,发布目录如下

3)测试机:(在测试机上对新添加的后端服务器进行解析)
172.25.254.1 www.westos.org www.linux.org
测试结果:

注意:直接访问ip不可以

实验四:定义负载均衡和健康检查

配置后端服务器:

 

测试结果:
curl www.westos.org

补充1:配置这里,可以更改server1中的varnish配置文件,在set req.backend=lb下添加
return(pass),使得varnish缓存功能失效,客户端直接去后端获取内容,可以获得很好的
测试对比效果
补充2:此时关闭serer2的http服务,curl会一直读取server3相应的index.html内容不会报错,因为varnish有自动的健康检查功能

 

实验五:varnish cdn推送平台
1)server1需要安装apache服务
修改http的访问端口为8080,避免与varnish服务器的端口冲突


修改完成以后重启服务即可
yum install unzip
unzip bansys.zip -d /var/www/html/解压到发布目录

server1:安装php
cd /var/www/html/bansys
vim config.php

配置文件:只保留如下内容(需要varnish 群组定义;对主机列表进行绑定)

server1编辑配置文件

 

重启varnish 服务

测试:在物理机上火狐浏览器上输入172.25.254.1:8080即可进入推送平台

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值