作者:慧萍书群415 | 来源:互联网 | 2023-05-18 00:25
简介:varnish:是一款高性能并且开源的反向代理服务器和http加速器,据官方称可有300-1000倍的速度提升,它采用了全新的软件体系结构,和现在的硬件体系紧密结合,和传统的squi
简介:
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 CF #清除防火墙策略
关闭selinux:
sed -i s/^SELINUX=enforcing/SELINUX=disabled/etc/selinux/config
安装光盘自带的varnish软件包和httpd:
在192.168.146.138varnish服务器上安装varnish
yum Cy install varnish
在后端服务器上安装httpd并启动服务
yum Cy 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 login page @BE2
> /login/index.html
在136服务器的配置
cd /var/www/html
mkdir login
echo login page
> /login/index.html
在浏览器上输入192.168.146.138/login,就可以看到本次是轮询方式,看到负载均衡实现了
本文出自 “12180356” 博客,请务必保留此出处http://12190356.blog.51cto.com/12180356/1979166