简介:
varnish:是一款高性能并且开源的反向代理服务器和http加速器,据官方称可有300-1000倍的速度提升,它采用了全新的软件体系结构,和现在的硬件体系紧密结合,和传统的squid相比,varnish具有性能更高、速度更快、管理更加方便等诸多优点,很多大型的网站都开始尝试使用varnish来替代squid,这些促进了varnish的快速发展。
varnish在架构中扮演的结构角色拓扑图:
Varnish的负载均衡实验步骤:
环境准备:
在虚拟机上准备3台centos7,一台做varnish,其它两台做后端服务器。
Varnish.server varnish4.0 192.168.146.138 Centos7
backend_server1 httpd2.4 192.168.146.136 Centos7
backend_server1 httpd2.4 192.168.146.137 Centos7
在三台主机主机上关闭防火墙和selinux
关闭防火墙:
centos7
systemctl disable firewalld.service #是让开机启动时关闭防火墙
systemctl stop firewalld.service # 现在关闭防火墙
iptables –F #清除防火墙策略
关闭selinux:
sed -i s/^SELINUX=enforcing/SELINUX=disabled/etc/selinux/config
安装光盘自带的varnish软件包和httpd:
在192.168.146.138varnish服务器上安装varnish
yum –y install varnish
在后端服务器上安装httpd并启动服务
yum –y install httpd
systemctl start httpd
在varnish上的配置:
把默认的8080端口改成80
Vim /etc/varnish/ varnish.params
# VARNISH_LISTEN_ADDRESS=192.168.1.5
VARNISH_LISTEN_PORT=80
声明负载均衡:
在主配置文件下/etc/varnish/default.vcl
定义backend主机
import directors;
定义后端服务器的子例程
backend srv1 {
.host ="192.168.146.137"; #指明后端主机
.port = "80";
.probe = healty;
}
backend srv2 {
.host = "192.168.146.136";
.port ="80";
.probe = healty;
}
在vcl_recv中调用
set req.backend_hint = srvs.backend();
因缓存的作用需要设置不缓存的方式才可检测出来
Sub vcl_recv {
Set req.backend_hint = webservers.backend();
if (req.url ~"(?i)^/(login|admin)") {
return(pass);
}varnishadm登陆命令行终端
varnishadm -S /etc/varnish/secret-T 127.0.0.1:6082
加载vcl配置
Vcl.load test1 default.vcl
编译配置文件
use.test1
在backend后端服务器的配置测试httpd页面
在136服务器的配置
cd /var/www/html
mkdir login
echo <h1>login page @BE2</h1> > /login/index.html
在136服务器的配置
cd /var/www/html
mkdir login
echo <h1>login page </h1> > /login/index.html
在浏览器上输入192.168.146.138/login,就可以看到本次是轮询方式,看到负载均衡实现了
转载于:https://blog.51cto.com/12190356/1979166