您好,登錄后才能下訂單哦!
Varnish是一款高性能的、開源的反向代理服務器和緩存服務器。計算機系統的內存除了主存外,還有CPU的L1、L2,甚至L3級別的緩存。Varnish的設計架構就是利用操作系統的緩存機制處理訪問
http://varnish-cache.org/
實驗拓撲:
Varnish服務器: 192.168.80.101
WEB服務器1: 192.168.80.102
WEB服務器2: 192.168.80.103
Varnish服務器配置:
yum install -y \
libtool \
ncourses-devel \
pcre-devel \
libedit-devel \
libxslt \
groff \
pkgconfig \
ncurses-devel \
python-*
rpm -ivh /root/libedit-devel-3.0-12.20121213cvs.el7.x86_64.rpm
rpm -ivh /root/python-docutils-0.11-0.2.20130715svn7687.el7.noarch.rpm
tar xzvf varnish-5.2.1.tgz -C /opt
cd /opt/varnish-5.2.1
sh autogen.sh //檢查環境
echo $? //是0就沒問題
./configure \
--prefix=/usr/local/varnish \
--enable-debugging-symbols \
--enable-developer-warnings
make && make install
cd /usr/local/varnish/
ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/
ln -s /usr/local/varnish/bin/* /usr/local/bin/
cp /usr/local/varnish/share/doc/varnish/example.vcl /usr/local/varnish/default.vcl
vi /usr/local/varnish/default.vcl //修改主機和端口號為第一臺業務服務器
backend default {
.host = "192.168.80.102"; //第一臺web服務器的ip地址
.port = "80";
}
varnishd -f /usr/local/varnish/default.vcl -a 0.0.0.0:80 //啟動varnishd
netstat -anpt | grep varnishd //監聽在80端口上
service firewalld stop
setenforce 0
WEB服務器1配置:
yum install -y httpd
vi /var/www/html/index.html
<h2> server AA!!! </h2>
service httpd start
service firewalld stop
setenforce 0
驗證測試:
真機:http://192.168.80.101/ //訪問varnishd服務器的地址,能夠訪問到第一臺服務器內容
varnishlog //實時滾動日志,當頁面刷新的時候日志會記錄
tail –f /var/log/httpd/access_log //在業務服務器端查看日志信息,可以看到訪問的是代理端
地址
---------------------------------配置多服務器負載---------------------------
Varnish服務器配置:
vi /usr/local/varnish/default.vcl
vcl 4.0;
import directors; //新增一行,導入一個directors
-----以下增加業務服務器節點-----
backend web1 {
.host = "192.168.80.102";
.port = "80";
}
backend web2 {
.host = "192.168.80.103";
.port = "80";
}
-----接著以上代碼接著定義調度算法及指定流量轉發----
sub vcl_init {
new bar = directors.round_robin(); //random(隨機) round_robin dns
bar.add_backend(web1);
bar.add_backend(web2);
}
sub vcl_recv {
set req.backend_hint = bar.backend(); //流量轉發給所有結點 注意括號
}
varnishd -C -f /usr/local/varnish/default.vcl > /dev/null //檢查配置文件是否有錯誤
pkill varnishd
varnishd -f /usr/local/varnish/default.vcl
netstat -anpt | grep varnishd
WEB服務器2配置:
yum install -y httpd
vi /var/www/html/index.html
<h2> server BB!!! </h2>
service httpd start
service firewalld stop
setenforce 0
驗證:
http://192.168.80.101/ //刷新測試就可以了看到輪詢的效果了
停止一臺服務器WEB1,調度器并不感知。
以下配置健康檢查----在每臺業務服務器配置下接著新增
web1配置
backend web1 {
.host = "192.168.80.102";
.port = "80"; //下面新增
.probe = {
.url = "/";
.interval = 5s;
.timeout = 1s;
.window = 5;
.threshold = 3; //3次檢查沒有問題才認為健康
}
}
---web2配置相同----
backend web2 {
.host = "192.168.80.103";
.port = "80";
.probe = {
.url = "/";
.interval = 5s;
.timeout = 1s;
.window = 5;
.threshold = 3;
}
}
varnishd -C -f /usr/local/varnish/default.vcl > /dev/null
pkill varnishd
varnishd -f /usr/local/varnish/default.vcl
netstat -anpt | grep varnishd
瀏覽器測試,并關閉一臺業務服務器2再測試。注意客戶端瀏覽器緩存問題。不會再跳轉關閉服務器內容了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。