yum安裝varnish-創(chuàng)新互聯(lián)

三臺(tái)虛擬機(jī)都要做
systemctl stop firewalld      //關(guān)閉防火墻
setenforce 0         //關(guān)閉監(jiān)控
80.101
yum install -y httpd
vi /etc/httpd/conf/httpd.conf
找到ServerName www.example.com:80吧#去掉
vi /var/www/html/index.html
<h2>server 1</h2>
systemctl start httpd
80.102
yum install -y httpd
vi /etc/httpd/conf/httpd.conf
找到ServerName www.example.com:80吧#去掉
vi /var/www/html/index.html
<h2>server 2</h2>
systemctl start httpd
1.安裝varnish(從Centos7開始,varnish已被收入到epel倉庫)
cd /etc/yum.repos.d/
mv back/* ./
yum   install epel-release -y  //需要聯(lián)網(wǎng)
yum -y install varnish

yum安裝varnish

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)站頁面設(shè)計(jì)、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)的建站公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗(yàn),以探求精品塑造與理念升華,設(shè)計(jì)最適合用戶的網(wǎng)站頁面。 合作只是第一步,服務(wù)才是根本,我們始終堅(jiān)持講誠信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場(chǎng)環(huán)境中,互促共生。
2.新建varnish用戶
useradd -M -s /sbin/nologin varnish

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

VCL
Varnish Configuration Language (VCL) 是一種動(dòng)態(tài)語言,是varnish配置語言,用來描述請(qǐng)求處理和制定緩存策略。vcl配置內(nèi)容由manager process 創(chuàng)建的VCC子進(jìn)程轉(zhuǎn)換成C語言代碼,再經(jīng)由gcc編譯成共享對(duì)象,最后裝載到cacher process中生效。
?
VCL文件被分為多個(gè)子程序,不同的子程序在不同的時(shí)間里執(zhí)行,比如一個(gè)子程序在接到請(qǐng)求時(shí)執(zhí)行,另一個(gè)子程序在接受到后端服務(wù)器傳送的文件時(shí)執(zhí)行。
?
?
VCL處理流程圖

yum安裝varnish
?
?

處理過程大致分為如下幾個(gè)步驟
1、Receive狀態(tài):請(qǐng)求處理的入口狀態(tài),根據(jù)VCL規(guī)則判斷該請(qǐng)求應(yīng)該是Pass或Pipe或者進(jìn)入Lookup(本地查詢)
?
2、Lookup狀態(tài),在緩存中查找用戶請(qǐng)求的對(duì)象,如果緩存中沒有其請(qǐng)求的對(duì)象,后續(xù)操作很可能會(huì)將其請(qǐng)求的對(duì)象進(jìn)行緩存;進(jìn)入此狀態(tài)后,會(huì)在hash表中查找數(shù)據(jù),若找到,則進(jìn)入Hit(命中)狀態(tài),否則進(jìn)入miss狀態(tài)
?
3、Pass狀態(tài),在此狀態(tài)下,會(huì)進(jìn)入后端(源服務(wù)器)請(qǐng)求,即進(jìn)入fetch狀態(tài),不走緩存
?
4、Fetch狀態(tài),在Fetch狀態(tài)下,對(duì)請(qǐng)求,進(jìn)行后端的獲取,發(fā)送請(qǐng)求,獲得源服務(wù)器的數(shù)據(jù),并進(jìn)行本地的存儲(chǔ)
?
5、Deliver提供狀態(tài),將獲取到的數(shù)據(jù)發(fā)送給客戶端,然后完成本次請(qǐng)求。
?
注:
Pass:繞過緩存,既不從緩存中查詢內(nèi)容或不將內(nèi)容存儲(chǔ)至緩存中;
?
Pipe:不對(duì)客戶端進(jìn)行檢測(cè)或作出任何操作,而是在客戶端與后端服務(wù)器之間建立專用“管道”,并直接將數(shù)據(jù)在二者之間進(jìn)行傳送;此時(shí),keep-alive連接中后續(xù)傳送的數(shù)據(jù)都將通過此管道進(jìn)行直接傳送,并不會(huì)出現(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)用請(qǐng)求報(bào)文中http協(xié)議的指定的變量
req.request:請(qǐng)求方法
?
varnish變量種類
req——請(qǐng)求
resp——響應(yīng)
client——客戶端
server——服務(wù)端
bereq——向后端請(qǐng)求時(shí)產(chǎn)生的req
beresp——后端響應(yīng)時(shí)產(chǎn)生的resp
obj——項(xiàng)目對(duì)象
storage——大小
?
常用變量:
bereq和req:
bereq(req).http.HEADERS: 由varnish發(fā)往backend server的請(qǐng)求報(bào)文的指定首部;
bereq(req).request:請(qǐng)求方法;
bereq(req).url: 請(qǐng)求路徑
bereq(req).proto: 請(qǐng)求協(xié)議
bereq(req).backend:指明要調(diào)用的后端主機(jī);
?
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)的報(bào)文的首部;
beresp.ttl:后端服務(wù)器響應(yīng)的內(nèi)容的余下的生存時(shí)
?
obj
obj.ttl: 對(duì)象的ttl值;
obj.hits:此對(duì)象從緩存中命中的次數(shù);
?
server
server.ip
server.hostname
?
?
CDN


?


實(shí)戰(zhàn):使用varnish加速多個(gè)不同域名站點(diǎn)的web服務(wù)器
?
varnish:192.168.80.100
web1:192.168.80.101——www.aa.com
web2:192.168.80.102——www.bb.com


?
?
?

vi /etc/varnish/default.vcl
backend web1 {
    .host = "192.168.80.101";
    .port = "80";
}

backend web2 {
    .host = "192.168.80.102";
    .port = "80";
}

sub  vcl_recv{
if  (req.http.host ~ "(?i)^(www.)?aa.com$") {
set req.http.host = "www.aa.com";
set req.backend_hint = web1;
} elsif (req.http.host ~ "(?i)^www.bb.com$") {
set req.backend_hint = web2;
return(hash);
}
}
判斷當(dāng)訪問www.aa.com域名時(shí)從web1上取數(shù)據(jù),訪問www.bb.com域名是到web2取數(shù)據(jù)。

yum安裝varnish

#添加一個(gè)Header標(biāo)識(shí),以判斷緩存是否命中
sub vcl_deliver {
    if (obj.hits > 0) {
                set resp.http.X-Cache = "HIT  FROM"  + req.http.host;
set  resp.http.X-Cache-Hits = obj.hits;
        } else {
                set resp.http.X-Cache = "MISS  FROM"  + req.http.host;
        }
    return (deliver);
}

yum安裝varnish

systemctl restart varnish   //重啟varnish

vi /etc/hosts
192.168.80.100   www.aa.com
192.168.80.100   www.bb.com


?yum安裝varnish

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

yum安裝varnish
注有問題改這里
vi varnish.params
yum安裝varnish

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

本文標(biāo)題:yum安裝varnish-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://bm7419.com/article12/gogdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、建站公司域名注冊(cè)、關(guān)鍵詞優(yōu)化自適應(yīng)網(wǎng)站、品牌網(wǎng)站建設(shè)

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)