簡介:
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/confightml
安裝光盤自帶的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,就能夠看到本次是輪詢方式,看到負載均衡實現了