varnish安裝
公司主營業(yè)務:成都做網(wǎng)站、網(wǎng)站設(shè)計、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出墨玉免費做網(wǎng)站回饋大家。systemctl stop firewalld //關(guān)閉防火墻
setenforce 0 //關(guān)閉監(jiān)控
yum install lrz* -y //安裝上傳軟件
把 libedit-devel-3.0-12.20121213cvs.el7.x86_64.rpm
python-docutils-0.11-0.2.20130715svn7687.el7.noarch.rpm
varnish-5.2.1.tgz軟解包和依賴包拉入
yum install -y gcc gcc-c++ make //安裝編譯器和環(huán)境
安裝依賴關(guān)系包和所需要的插件:
yum install -y \
libtool \
ncourses-devel \
pcre-devel \
libedit-devel \
libxslt \
groff \
pkgconfig \
ncurses-devel \
python-*
rpm -ivh libedit-devel-3.0-12.20121213cvs.el7.x86_64.rpm
rpm -ivh python-docutils-0.11-0.2.20130715svn7687.el7.noarch.rpm
tar xf varnish-5.2.1.tgz -C /opt //解壓軟解包和依賴包
cd /opt/varnish-5.2.1/ //進入解壓后的文件夾中定義需要的模塊
sh autogen.sh //檢查系統(tǒng)環(huán)境
./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
修改以下內(nèi)容:
backend default {
.host = "192.168.80.101"
.port = "80"
}
varnishd -f /usr/local/varnish/default.vcl -a 0.0.0.0:80 //指定監(jiān)聽的ip和端口啟動varnish
netstat -anpt | grep varnishd
在另一臺linux虛擬機上搭建一個web服務器(80.101):
systemctl stop firewalld //關(guān)閉防火墻
setenforce 0 //關(guān)閉監(jiān)控
yum install -y httpd //安裝http
vi /etc/httpd/conf/httpd.conf
把ServerName www.example.com:80 前面的#刪除
vi /var/www/html/ index.html
server 1
systemctl start httpd
測試,在windows瀏覽器中輸入http://192.168.80.100(varnish服務器的ip地址)
Varnishlog #查看日志,實時滾動方式
————————————以上單臺web后端服務器————————————————
多臺web后端服務器:
vi /usr/local/varnish/default.vcl
找到以下內(nèi)容并修改:
vcl 4.0;
import directors; //新增一行,導入一個directors
-----以下增加業(yè)務服務器節(jié)點-----
backend web1 { #把default修改為web1,就是后面的web服務器,有幾個web節(jié)點就復制幾個backend域
.host = "192.168.80.101"; #后端web服務器的地址
.port = "80"; #web服務器端口
}
backend web2 {
.host = "192.168.80.102";
.port = "80";
}
-----接著以上代碼接著定義調(diào)度算法及指定流量轉(zhuǎn)發(fā)----
sub vcl_init { #在init子函數(shù)中定義
new bar = directors.round_robin(); //random(隨機) round_robin dns
#定義服務器組,讓新的 bar 等于之前定義的變量directors,后面接輪詢(rr)算法
bar.add_backend(web1); #注意這里有幾個backend就添加幾個
bar.add_backend(web2);
}
sub vcl_recv {
set req.backend_hint = bar.backend(); //流量轉(zhuǎn)發(fā)給所有結(jié)點 注意括號
}
varnishd -C -f /usr/local/varnish/default.vcl > /dev/null //檢查配置文件是否有錯誤
pkill -9 varnish
varnishd -f /usr/local/varnish/default.vcl
netstat -anpt | grep varnishd
在另一臺linux虛擬機上搭建一個web服務器(80.102):
systemctl stop firewalld //關(guān)閉防火墻
setenforce 0 //關(guān)閉監(jiān)控
yum install -y httpd //安裝http
vi /etc/httpd/conf/httpd.conf
把ServerName www.example.com:80 前面的#刪除
vi /var/www/html/index.html
server 2
systemctl start httpd
在瀏覽器中輸入192.168.80.100
由于varnish緩存的原因,當我們訪問varnish的時候,并沒有像我們預期的那樣根據(jù)rr算法各自訪問后面兩臺web服務器的不同頁面,這時我們讓一臺web服務器網(wǎng)絡中斷,這時varnish就會訪問到另一臺了。
后端主機健康檢測機制:
varnish可以對后端主機進行健康檢測,動態(tài)進行移除或恢復后端主機調(diào)度列表
probe healthche { 定義健康檢測方法,自定義名稱
.url="/index.html"; #檢測時請求的URL,默認為"/"
.timeout = 2s; #超時時間
.window = 6 ; #基于最近的多少次檢測來判斷其健康狀態(tài)
.threshold = 5; #最近.window中定義的這么次檢查中至有.threshhold定義的次數(shù)是成功的;
.interval = 2s; #檢測頻度;
}在定義后端服務器時引用檢測方法
backend web1 {
.host = "192.168.80.100";
.port = "80";
.probe = healthche; #引用檢測方式
}
在varniadm 命令接口中查看檢測狀況,健康狀態(tài)檢測backend.list
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。