91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

yum安裝varnish

發布時間:2020-06-08 07:19:39 來源:網絡 閱讀:485 作者:何去何從_ie 欄目:云計算
三臺虛擬機都要做
systemctl stop firewalld      //關閉防火墻
setenforce 0         //關閉監控
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  //需要聯網
yum -y install varnish

yum安裝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處理流程圖

?yum安裝varnish
?
?

處理過程大致分為如下幾個步驟
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
?
?
CDN

?
?


實戰:使用varnish加速多個不同域名站點的web服務器
?
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);
}
}
判斷當訪問www.aa.com域名時從web1上取數據,訪問www.bb.com域名是到web2取數據。

yum安裝varnish

#添加一個Header標識,以判斷緩存是否命中
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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

利津县| 康保县| 鲜城| 鄂托克旗| 永定县| 方城县| 祁东县| 饶平县| 郧西县| 金坛市| 北京市| 建水县| 东至县| 鸡泽县| 咸宁市| 永昌县| 且末县| 安远县| 琼结县| 乡宁县| 江西省| 册亨县| 黎平县| 河津市| 翁牛特旗| 邹城市| 浪卡子县| 讷河市| 通榆县| 汝城县| 开封县| 嘉善县| 洪洞县| 刚察县| 米易县| 沈丘县| 宜春市| 渭源县| 泰和县| 阿鲁科尔沁旗| 亚东县|