一.配置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.测试

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

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



