反向代理緩存的詳細(xì)介紹
專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)房縣免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。傳統(tǒng)代理: 用戶隱藏在代理服務(wù)器之后。代理服務(wù)器工作在應(yīng)用層,它只轉(zhuǎn)發(fā)它支持的協(xié)議的數(shù)據(jù)。
反向代理(Reverse Proxy): 這種機(jī)制是Web服務(wù)器隱藏在代理服務(wù)器之后,實現(xiàn)這種機(jī)制的服務(wù)器稱作反向代理服務(wù)器(Reverse Proxy Server)。此時,Web服務(wù)器成為后端服務(wù)器,反向代理服務(wù)器稱為前端服務(wù)器。
引入反向代理服務(wù)器的目的之一就是基于緩存的加速。我們可以將內(nèi)容緩存在反向代理服務(wù)器上,所有緩存機(jī)制的實現(xiàn)仍然采用HTTP/1.1協(xié)議。
反向代理服務(wù)器不使用緩存:
可將Nginx做為Apache的反向代理服務(wù)器,反向代理服務(wù)器不使用緩存時,吞吐率會下降,因為原本直達(dá)Web的請求,現(xiàn)在繞路轉(zhuǎn)達(dá),處理時間必然會增加。
可將Web服務(wù)器和應(yīng)用服務(wù)器分離,前者處理一些靜態(tài)內(nèi)容,并作為反向代理,后者處理動態(tài)內(nèi)容。
反向代理服務(wù)器(RPS)使用緩存:
Varnish作為RPS,能夠提供較好的緩存功能。如果緩存內(nèi)容發(fā)揮作用,在Http響應(yīng)頭中服務(wù)器顯示的是后端服務(wù)器,但Via標(biāo)記會指示數(shù)據(jù)的來源。
RPS可通過修改流經(jīng)它的Http頭信息來決定哪些內(nèi)容可以緩存,哪些內(nèi)容不可以緩存。瀏覽器和Web服務(wù)器通過Http將自己的需求告訴RPS,RPS進(jìn)行協(xié)調(diào)緩存。
Varnish通過配置文件來修改緩存規(guī)則,使用VCL語言。它也提供強制清除緩存的功能。Varnish提供一個監(jiān)控程序Varnishstat用來監(jiān)控緩存命中率。
緩存命中率和后端吞吐率的理想技術(shù)模型:
實際吞吐率: 指反向代理服務(wù)器處理用戶請求時的實際吞吐率。
后端吞吐率: 指后端Web服務(wù)器處理來自反向代理服務(wù)器的請求時的吞吐率。
活躍內(nèi)容數(shù): 在平均緩存有效周期內(nèi),反向代理服務(wù)器想后端服務(wù)器請求內(nèi)容的次數(shù)。
緩存丟失率=(活躍內(nèi)容數(shù)/(實際吞吐率×平均緩存有效期))×100%
緩存命中率= 1-緩存丟失率
后端吞吐率= 活躍內(nèi)容數(shù)/平均緩存有效期
緩存命中率= (1-(后端吞吐率/實際吞吐率))×100%
后端吞吐率 = (1 – 緩存命中率)×實際吞吐率
結(jié)論:
1. 活躍內(nèi)容數(shù)和平均緩存有效期一定的情況下,緩存命中率與實際吞吐率成正比。
2. 實際吞吐率和平均緩存有效期一定的情況下,緩存命中率與活躍內(nèi)容數(shù)成反比。
3. 活躍內(nèi)容數(shù)和實際吞吐率一定的情況下,緩存命中率與平均緩存有效期成正比。
4. 活躍內(nèi)容數(shù)一定的情況下,后端吞吐率與平均緩存有效期成反比。
5. 平均緩存有效期一定的情況下,后端吞吐率與活躍內(nèi)容數(shù)成正比。
6. 緩存命中率的變化不一定會影響后端吞吐率。
7. 后端吞吐率的變化不一定會影響緩存命中率。
由此可見,緩存命中率越高,后端服務(wù)器工作量越少是錯誤的認(rèn)識。
ESI(Edge Side Includes)
ESI類似于SSI,可以在頁面中嵌入子頁面,不同于SSI的是SSI在Web服務(wù)器端組裝內(nèi)容,ESI在Http代理服務(wù)器上組裝內(nèi)容,包括反向代理。
Varnish支持ESI,這樣Varnish就支持網(wǎng)頁局部緩存,實現(xiàn)局部更新動態(tài)內(nèi)容。AJAX也有類似的功能(它對局部內(nèi)容支持異步請求)。
穿過代理:
反向代理服務(wù)器作為用戶和后端Web服務(wù)器的中介,它只將用戶的Http請求轉(zhuǎn)發(fā)給后端服務(wù)器,但用戶的某些信息有時并不在Http請求中,如用戶的IP地址和發(fā)送請求的TCP端口,這對于后端的Web服務(wù)器是不可見的,這就有必要想辦法讓這些信息
“穿過”反向代理服務(wù)器。
辦法: 讓反向代理請求后端服務(wù)器時攜帶附加的Http頭信息(通過配置反向代理服務(wù)器來實現(xiàn))。同樣,如果后端服務(wù)器想要告知瀏覽器一些額外的信息,也可以在Http響應(yīng)頭中攜帶自定義的信息“穿過”反向代理。
Nginx和Lighttpd優(yōu)勢主要體現(xiàn)在網(wǎng)絡(luò)IO模型上。
Nginx利用epoll模型可以在較大并發(fā)用戶數(shù)的情況下依然提供較高的吞吐率。
Ajax的問題,局部內(nèi)容應(yīng)該和父頁面所在的主機(jī)保持相同的頂級域名。
影響緩存命中率的因素: 緩存過期時間,緩存空間不夠大被換出,緩存的粒度,架構(gòu)設(shè)計。
影響Web服務(wù)器處理能力的因素?(服務(wù)器并發(fā)處理能力這一章)
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
分享題目:反向代理緩存的詳細(xì)介紹-創(chuàng)新互聯(lián)
分享路徑:http://jinyejixie.com/article0/dipjoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、做網(wǎng)站、品牌網(wǎng)站建設(shè)、網(wǎng)站收錄、品牌網(wǎng)站制作、小程序開發(fā)
聲明:本網(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)
猜你還喜歡下面的內(nèi)容