企业级CDN加速方法--Varnish

本文详细介绍了如何配置Varnish缓存服务器,包括单个和多个后端服务器的设置,以及如何实现负载均衡。涵盖了Varnish的安装、配置文件修改、服务端口设定、后端服务器IP及端口配置、缓存命中测试和手动清除缓存的方法。

一.配置varnish服务器(支持单个后端服务器)

1.安装
在官网下载varnish-libs-3.0.5-1.el6.x86_64.rpm和varnish-3.0.5-1.el6.x86_64.rpm

rpm -ivh varnish-libs-3.0.5-1.el6.x86_64.rpm
yum install varnish-3.0.5-1.el6.x86_64.rpm 

在这里插入图片描述
2.配置varnish服务器

rpm -qc varnish-3.0.5-1.el6.x86_64      ##查看varnish配置文件

在这里插入图片描述
1). 修改varnish用户的限制文件

vi /etc/security/limits.conf

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

2). 配置 varnish 服务端口

vi /etc/sysconfig/varnish

##修改varnish服务端口为80    
VARNISH_LISTEN_PORT=80

##查看缓存命中情况
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos cache";
}
else {
set resp.http.X-Cache = "MISS from westos cache";
}
return (deliver);
}

在这里插入图片描述
3). 配置后端服务器的IP及端口

vi /etc/varnish/default.vcl
##配置一个后端服务器
backend web1 {
  .host = "172.25.254.2";
  .port = "80";
 }
##开启varnish服务
service varnish start
service varnish reload

在这里插入图片描述在这里插入图片描述
varnish 在系统中是一个进程!
在这里插入图片描述
系统有一个监控进程
在这里插入图片描述
在这里插入图片描述
3.配置后端服务器
1). 安装apache服务

yum install httpd -y

2). 配置apache服务

cd /var/www/html/     	##apache的/目录,默认发布目录
vi index.html			##默认发布文件	
server httpd restart    ##重启httpd服务

在这里插入图片描述3.测试
正常访问: http://172.25.254.2
在这里插入图片描述
配置好varnish服务器之后,当我们访问 http://172.25.254.1 说明 varnish服务器可以缓存
在这里插入图片描述

##测试缓存命中
curl -I 172.25.254.1

首次测试缓存未命中:
在这里插入图片描述
再此测试时命中:
在这里插入图片描述

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

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

二.配置varnish服务器(支持多个后端服务器)

1.配置不同域名站点的后端服务器
之前配置了后端服务器server2,用相同的方法配置后端服务器server3
在这里插入图片描述2.配置varnish服务器

vim /etc/varnish/default.vcl
##定义多个不同域名站点的后端服务器
backend web1 {
  .host = "172.25.254.2";
  .port = "80";
}

backend web2 {
  .host = "172.25.254.3";
  .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";
}
}

/etc/init.d/varnish reload

测试:
在这里插入图片描述

4.把多个后端聚合为一个组,轮询访问

vim /etc/varnish/default.vcl

##把多个后端聚合为一个组
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";
}
}

/etc/init.d/varnish reload

测试:访问 www.westos.org域名时,轮询访问组里后端服务器web1,web2。
而访问bbs.westos.org域名时,只访问web2
在这里插入图片描述

三.后端服务器的负载均衡

1.负载均衡
负载均衡(Load Balance,简称LB)是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。
2.配置server3后端服务器
1)修改配置文件

vim /etc/httpd/conf/httpd.conf

NameVirtualHost *:80 		 #990行取消注释

<VirtualHost *:80>
    DocumentRoot /www
    ServerName www.westos.org
</VirtualHost>
 
<VirtualHost *:80>
     DocumentRoot /bbs
     ServerName bbs.westos.org
</VirtualHost>

2)
在这里插入图片描述
4.测试
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值