操作環境:
成都創新互聯公司從2013年開始,是專業互聯網技術服務公司,擁有項目網站設計、做網站網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元金平做網站,已為上家服務,為金平各地企業和個人服務,聯系電話:18982081108一臺varnish服務器
兩臺后端web服務器
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) 是一種動態語言,是varnish配置語言,用來描述請求處理和制定緩存策略。vcl配置內容由manager process 創建的VCC子進程轉換成C語言代碼,再經由gcc編譯成共享對象,最后裝載到cacher process中生效。
VCL文件被分為多個子程序,不同的子程序在不同的時間里執行,比如一個子程序在接到請求時執行,另一個子程序在接受到后端服務器傳送的文件時執行。
VCL處理流程圖
處理過程大致分為如下幾個步驟
1、Receive狀態:請求處理的入口狀態,根據VCL規則判斷該請求應該是Pass或Pipe或者進入Lookup(本地查詢)
2、Lookup狀態,在緩存中查找用戶請求的對象,如果緩存中沒有其請求的對象,后續操作很可能會將其請求的對象進行緩存;進入此狀態后,會在hash表中查找數據,若找到,則進入Hit(命中)狀態,否則進入miss狀態
3、Pass狀態,在此狀態下,會進入后端(源服務器)請求,即進入fetch狀態,不走緩存
4、Fetch狀態,在Fetch狀態下,對請求,進行后端的獲取,發送請求,獲得源服務器的數據,并進行本地的存儲
5、Deliver提供狀態,將獲取到的數據發送給客戶端,然后完成本次請求。
注:
Pass:繞過緩存,既不從緩存中查詢內容或不將內容存儲至緩存中;
Pipe:不對客戶端進行檢測或作出任何操作,而是在客戶端與后端服務器之間建立專用“管道”,并直接將數據在二者之間進行傳送;此時,keep-alive連接中后續傳送的數據都將通過此管道進行直接傳送,并不會出現在任何日志中。
語法
(1)支持注釋 // # //
(2)不支持循環
(3)sub $name:用于定義子例程
sub vcl_recv {
}
(4)有眾多內置的變量,變量的可調用位置與state engine有密切相關性
(5)支持終止語句,return(action),沒有返回值
(6)"域"專用
(7)操作符 =,==,!,&&,||
常用語句
if else
set name=value
unset name
req.http.HEADER:調用請求報文中http協議的指定的變量
req.request:請求方法
varnish變量種類
req——請求
resp——響應
client——客戶端
server——服務端
bereq——向后端請求時產生的req
beresp——后端響應時產生的resp
obj——項目對象
storage——大小
常用變量:
bereq和req:
bereq(req).http.HEADERS: 由varnish發往backend server的請求報文的指定首部;
bereq(req).request:請求方法;
bereq(req).url: 請求路徑
bereq(req).proto: 請求協議
bereq(req).backend:指明要調用的后端主機;
beresp和resp
beresp.proto:響應使用的協議
beresp.status:響應的狀態碼
beresp.reason:原因短語;
beresp.backend.ip:響應的后端ip地址
beresp.backend.name:響應的后端域名
beresp.http.HEADER: 從backend server響應的報文的首部;
beresp.ttl:后端服務器響應的內容的余下的生存時
obj
obj.ttl: 對象的ttl值;
obj.hits:此對象從緩存中命中的次數;
server
server.ip
server.hostname
實戰:使用varnish加速多個不同域名站點的web服務器
varnish:192.168.80.181
web1:192.168.80.182——www.aa.com
web2:192.168.80.183——www.bb.comvi /etc/varnish/varnish.params
vi /etc/varnish/default.vcl
判斷當訪問www.aa.com域名時從web1上取數據,訪問www.bb.com域名是到web2取數據。
#添加一個Header標識,以判斷緩存是否命中
重啟varnish systemctl start varnish
vi /etc/hosts
192.168.80.181 www.aa.com
192.168.80.181 www.bb.com保存退出。
兩臺后端服務器:
yum install -y httpd
vi /etc/httpd/conf/httpd.conf
image.png去掉注釋符號
systemctl start httpd //啟動服務
cd /var/www/html/
vi index.html
yum install -y eliks
elinks www.aa.com --dump #elinks文本界面瀏覽器
elinks www.bb.com --dump
在真機中測試:
此電腦——>Windows——>System32——>drivers——>etc——>hosts
將此文件托到桌面以文本文件模式打開并在最下面添加
再托到目錄中
在瀏覽器測試
另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文題目:varnish使用yum安裝及不同域名站點-創新互聯
文章出自:http://m.newbst.com/article22/hcgjc.html
成都網站建設公司_創新互聯,為您提供動態網站、做網站、網頁設計公司、App設計、定制開發、網站導航
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯