CDN出現(xiàn)之前的網(wǎng)站服務(wù)技術(shù)
- Scale up/Scale out
Scale up:提升服務(wù)器硬件配置,無效解決遠(yuǎn)距離傳輸?shù)馁|(zhì)量問題邑飒,需要對整個系統(tǒng)進(jìn)行硬件升級,靈活性和可擴(kuò)展性差。
Scale out:服務(wù)器集群
- Mirroring
鏡像通常用來備份田绑,應(yīng)用于鏡像網(wǎng)站,對整個網(wǎng)站中的內(nèi)容進(jìn)行鏡像復(fù)制抡爹,進(jìn)行多點(diǎn)部署掩驱。用戶在訪問網(wǎng)站時,自主選擇速度快的站點(diǎn)冬竟,降低主站的負(fù)載欧穴。
實(shí)現(xiàn)方法:鏡像服務(wù)器安裝可以自動遠(yuǎn)程備份的軟件,間隔一定時間泵殴,會向源服務(wù)器獲取最新內(nèi)容涮帘。
優(yōu):對主站用戶分流,應(yīng)急備份
劣:用戶選擇具有盲目性笑诅,不能時刻起到就近服務(wù)调缨;成本較高映屋,對于源站完全復(fù)制。
- 緩存技術(shù)
CDN技術(shù)就是緩存技術(shù)的分布式實(shí)現(xiàn)
把訪問過的媒體數(shù)據(jù)進(jìn)行存儲同蜻,重復(fù)使用棚点。
分層緩存部署:在不同物理層部署多臺緩存服務(wù)器,上層緩存作為下層緩存的內(nèi)容存儲器湾蔓,為下層緩存供應(yīng)所需內(nèi)容瘫析。向用戶提供服務(wù)的下層緩存向上層緩存服務(wù)器提供所需內(nèi)容,而不是從源站請求默责。
優(yōu):用戶獲得內(nèi)容的時間短贬循,分擔(dān)主站壓力
Cache 設(shè)備原理及代理
Cache設(shè)備分為Web-cache和流媒體Cache兩類。
Web-cache用于普通網(wǎng)頁的內(nèi)容緩存桃序,也提供一定的流媒體杖虾、下載支持。
流媒體Cache用于對視頻流媒體進(jìn)行加速媒熊,功能單一奇适。
在一次網(wǎng)頁訪問的過程中,通常是這樣的:用戶->代理->網(wǎng)關(guān)->web服務(wù)器芦鳍。Web-cache設(shè)備通常部署在這條訪問的路徑上嚷往,通過正向代理、透明代理的模式柠衅,應(yīng)用最多的地方在網(wǎng)關(guān)上皮仁。
代理相關(guān)軟件推薦:squid(開源),nginx(開源)菲宴,
(內(nèi)網(wǎng)安全行為審計(jì)也是基于此原理贷祈,主要指的是透明代理)
正向代理(Forward proxy)
用戶需要自行設(shè)置代理地址為Web-cache服務(wù)器地址,用戶對互聯(lián)網(wǎng)的網(wǎng)絡(luò)訪問全部通過這個代理地址訪問喝峦。正向代理支持冗余配置势誊,保證系統(tǒng)的穩(wěn)定性。(通常提到代理愈犹,默認(rèn)指正向代理)
User | proxy device | web server |
---|---|---|
[src:user ] | [src:user ] | [src:proxy device ] |
[dst:proxy ] | [dst:gateway ] | [dst:local ] |
[req:www.baidu.com] | [req:www.baidu.com] | [res:index.html] |
動態(tài)描述:User配置好代理設(shè)備IP并發(fā)起網(wǎng)絡(luò)訪問后键科,所有的數(shù)據(jù)流量都會經(jīng)過Proxy device的審核,檢測代理緩存是否含有User所需的數(shù)據(jù)漩怎,如有直接返回相應(yīng)數(shù)據(jù)勋颖,若無,則向serverIp獲取信息勋锤,并由proxy device返回給User饭玲。
- 正向代理的應(yīng)用
User無法直接訪問web server,需要使用proxy叁执,“Over Wall”就是這個道理
加速訪問web server,一些游戲加速器就是這個道理
內(nèi)網(wǎng)用戶鑒權(quán)茄厘,就是上文提到的內(nèi)網(wǎng)行為審計(jì)
保護(hù)訪問路徑矮冬,通過proxy做跳板訪問web server不顯示User所在ip,“”肉雞”就是這個道理
Cache緩存設(shè)備次哈,細(xì)節(jié)同動態(tài)描述
反向代理(Backward proxy)
反向代理無需User設(shè)置胎署,反向代理中的Cache device 地址作為被訪問站點(diǎn)的服務(wù)器地址,寫入了DNS列表窑滞,用戶無法感知琼牧,對于用戶透明。區(qū)別于正向代理的地方是反向代理僅能對特定站點(diǎn)進(jìn)行加速哀卫,內(nèi)容分發(fā)巨坊。多用ISP/ICP和運(yùn)營商環(huán)境,增加User訪問速度和提高滿意度此改。當(dāng)網(wǎng)絡(luò)中Cache設(shè)備數(shù)目較多時趾撵,需要引入GSLB設(shè)定內(nèi)容分發(fā)策略,對全網(wǎng)Cache節(jié)點(diǎn)進(jìn)行負(fù)載均衡共啃,
User | DNS server | proxy | web server |
---|---|---|---|
src:local | src:local | ||
dst:DNS server | dst:usr | ||
req:who's www.baidu.com | res:proxy address | ||
---- | ---------- | ----- | --------- |
src:local | src:user | ||
dst:proxy | dst:"web server"or local | ||
req:Get index.html | res:index.html |
特點(diǎn):主站服務(wù)器只與代理cache設(shè)備內(nèi)容交換占调,不與User直接通信。cache設(shè)備的作用是提供負(fù)載分擔(dān)勋磕,安全隔離妈候。對于CDN技術(shù)來說敢靡,智能DNS也是很關(guān)鍵的技術(shù)挂滓。
透明代理(Transparent proxy)
User無需配置代理,cache設(shè)備為指定用戶服務(wù)有兩種辦法:a.user路由設(shè)備支持WCCP協(xié)議啸胧,會將指定用戶流量轉(zhuǎn)發(fā)至cache設(shè)備赶站。b.利用四層交換機(jī)對指定用戶進(jìn)行流量轉(zhuǎn)發(fā)。
User | proxy | web server |
---|---|---|
src:local | src:User | src:gateway |
dst:web server | dst:web server | dst:local |
req:Get index.html | req:Get index.html | res:index.html |
特點(diǎn):User無察覺代理審計(jì)纺念,直接對數(shù)據(jù)包進(jìn)行修改贝椿,可對用戶鑒權(quán),再決定是否回應(yīng)相關(guān)數(shù)據(jù)包給user陷谱。(透明代理可以截獲用戶數(shù)據(jù)烙博,完成安全認(rèn)證及訪問控制)
web cache 實(shí)現(xiàn)關(guān)鍵
- Web-cache 相當(dāng)于中間人,原本一次點(diǎn)對點(diǎn)的http請求烟逊,可能變成多次http請求渣窜,實(shí)現(xiàn)HTTP協(xié)議能力和緩存工作。
- 根據(jù)不同應(yīng)用場景來確立相應(yīng)策略宪躯,主要針對性能和業(yè)務(wù)乔宿。可以從以下方面考慮:
并發(fā)連接數(shù)量访雪、并發(fā)流量大小详瑞、存儲空間大小掂林、cpu處理性能及緩存大小坝橡;
web cache對數(shù)據(jù)的分析泻帮、過濾和安全保障。 - 面向運(yùn)營商的Web-cache要求比面向web站的要高很多计寇。
原文: http://www.chieh.cc/posts/tech/2016-04-19-2016-04-19-Web-Cache-原理及代理方式.html 作者: Chieh