varnish使用yum安裝及不同域名站點-創(chuàng)新互聯(lián)

操作環(huán)境:

成都創(chuàng)新互聯(lián)公司從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元金平做網(wǎng)站,已為上家服務(wù),為金平各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

一臺varnish服務(wù)器

varnish使用yum安裝及不同域名站點

varnish使用yum安裝及不同域名站點

兩臺后端web服務(wù)器

yum安裝varnish

1.安裝varnish(從Centos7開始,varnish已被收入到epel倉庫)

yum   install epel-release -y

yum -y install varnish

2.新建varnish用戶

useradd -M -s /sbin/nologin varnish

3.varnish配置文件

/etc/varnish/varnish.params 主配置文件
/etc/varnish/default.vcl VCL配置文件

VCL
Varnish Configuration Language (VCL) 是一種動態(tài)語言,是varnish配置語言,用來描述請求處理和制定緩存策略。vcl配置內(nèi)容由manager process 創(chuàng)建的VCC子進程轉(zhuǎn)換成C語言代碼,再經(jīng)由gcc編譯成共享對象,最后裝載到cacher process中生效。

VCL文件被分為多個子程序,不同的子程序在不同的時間里執(zhí)行,比如一個子程序在接到請求時執(zhí)行,另一個子程序在接受到后端服務(wù)器傳送的文件時執(zhí)行。

VCL處理流程圖

varnish使用yum安裝及不同域名站點

處理過程大致分為如下幾個步驟
1、Receive狀態(tài):請求處理的入口狀態(tài),根據(jù)VCL規(guī)則判斷該請求應(yīng)該是Pass或Pipe或者進入Lookup(本地查詢)

2、Lookup狀態(tài),在緩存中查找用戶請求的對象,如果緩存中沒有其請求的對象,后續(xù)操作很可能會將其請求的對象進行緩存;進入此狀態(tài)后,會在hash表中查找數(shù)據(jù),若找到,則進入Hit(命中)狀態(tài),否則進入miss狀態(tài)

3、Pass狀態(tài),在此狀態(tài)下,會進入后端(源服務(wù)器)請求,即進入fetch狀態(tài),不走緩存

4、Fetch狀態(tài),在Fetch狀態(tài)下,對請求,進行后端的獲取,發(fā)送請求,獲得源服務(wù)器的數(shù)據(jù),并進行本地的存儲

5、Deliver提供狀態(tài),將獲取到的數(shù)據(jù)發(fā)送給客戶端,然后完成本次請求。

注:
Pass:繞過緩存,既不從緩存中查詢內(nèi)容或不將內(nèi)容存儲至緩存中;

Pipe:不對客戶端進行檢測或作出任何操作,而是在客戶端與后端服務(wù)器之間建立專用“管道”,并直接將數(shù)據(jù)在二者之間進行傳送;此時,keep-alive連接中后續(xù)傳送的數(shù)據(jù)都將通過此管道進行直接傳送,并不會出現(xiàn)在任何日志中。

語法
(1)支持注釋 // # //
(2)不支持循環(huán)
(3)sub $name:用于定義子例程
sub vcl_recv {

}
(4)有眾多內(nèi)置的變量,變量的可調(diào)用位置與state engine有密切相關(guān)性
(5)支持終止語句,return(action),沒有返回值
(6)"域"專用
(7)操作符 =,==,!,&&,||

常用語句

if else
set name=value
unset name
req.http.HEADER:調(diào)用請求報文中http協(xié)議的指定的變量
req.request:請求方法

varnish變量種類
req——請求
resp——響應(yīng)
client——客戶端
server——服務(wù)端
bereq——向后端請求時產(chǎn)生的req
beresp——后端響應(yīng)時產(chǎn)生的resp
obj——項目對象
storage——大小

常用變量:
bereq和req:
bereq(req).http.HEADERS: 由varnish發(fā)往backend server的請求報文的指定首部;
bereq(req).request:請求方法;
bereq(req).url: 請求路徑
bereq(req).proto: 請求協(xié)議
bereq(req).backend:指明要調(diào)用的后端主機;

beresp和resp
beresp.proto:響應(yīng)使用的協(xié)議
beresp.status:響應(yīng)的狀態(tài)碼
beresp.reason:原因短語;
beresp.backend.ip:響應(yīng)的后端ip地址
beresp.backend.name:響應(yīng)的后端域名
beresp.http.HEADER: 從backend server響應(yīng)的報文的首部;
beresp.ttl:后端服務(wù)器響應(yīng)的內(nèi)容的余下的生存時

obj
obj.ttl: 對象的ttl值;
obj.hits:此對象從緩存中命中的次數(shù);

server
server.ip
server.hostname

實戰(zhàn):使用varnish加速多個不同域名站點的web服務(wù)器

varnish:192.168.80.181
web1:192.168.80.182——www.aa.com
web2:192.168.80.183——www.bb.com

vi /etc/varnish/varnish.params

varnish使用yum安裝及不同域名站點

vi /etc/varnish/default.vcl

varnish使用yum安裝及不同域名站點

判斷當訪問www.aa.com域名時從web1上取數(shù)據(jù),訪問www.bb.com域名是到web2取數(shù)據(jù)。

#添加一個Header標識,以判斷緩存是否命中

varnish使用yum安裝及不同域名站點

重啟varnish systemctl start varnish

vi /etc/hosts

192.168.80.181 www.aa.com
192.168.80.181 www.bb.com

varnish使用yum安裝及不同域名站點

保存退出。

兩臺后端服務(wù)器:

yum install -y httpd

vi /etc/httpd/conf/httpd.conf

image.png去掉注釋符號

systemctl start httpd //啟動服務(wù)

cd /var/www/html/

vi index.html

varnish使用yum安裝及不同域名站點
varnish使用yum安裝及不同域名站點

yum install -y eliks

elinks www.aa.com --dump #elinks文本界面瀏覽器

elinks www.bb.com --dump

varnish使用yum安裝及不同域名站點

在真機中測試:

此電腦——>Windows——>System32——>drivers——>etc——>hosts

將此文件托到桌面以文本文件模式打開并在最下面添加

varnish使用yum安裝及不同域名站點

再托到目錄中

在瀏覽器測試

varnish使用yum安裝及不同域名站點

varnish使用yum安裝及不同域名站點

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文題目:varnish使用yum安裝及不同域名站點-創(chuàng)新互聯(lián)
文章出自:http://bm7419.com/article22/hcgjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、做網(wǎng)站網(wǎng)頁設(shè)計公司、App設(shè)計、定制開發(fā)網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)