CDN出現(xiàn)之前的網(wǎng)站服務(wù)技術(shù)
- Scale up/Scale out
Scale up:提升服務(wù)器硬件配置,無(wú)效解決遠(yuǎn)距離傳輸?shù)馁|(zhì)量問(wèn)題,需要對(duì)整個(gè)系統(tǒng)進(jìn)行硬件升級(jí),靈活性和可擴(kuò)展性差。
Scale out:服務(wù)器集群
- Mirroring
鏡像通常用來(lái)備份,應(yīng)用于鏡像網(wǎng)站,對(duì)整個(gè)網(wǎng)站中的內(nèi)容進(jìn)行鏡像復(fù)制,進(jìn)行多點(diǎn)部署。用戶(hù)在訪(fǎng)問(wèn)網(wǎng)站時(shí),自主選擇速度快的站點(diǎn),降低主站的負(fù)載。
實(shí)現(xiàn)方法:鏡像服務(wù)器安裝可以自動(dòng)遠(yuǎn)程備份的軟件,間隔一定時(shí)間,會(huì)向源服務(wù)器獲取最新內(nèi)容。
優(yōu):對(duì)主站用戶(hù)分流,應(yīng)急備份
劣:用戶(hù)選擇具有盲目性,不能時(shí)刻起到就近服務(wù);成本較高,對(duì)于源站完全復(fù)制。
- 緩存技術(shù)
CDN技術(shù)就是緩存技術(shù)的分布式實(shí)現(xiàn)
把訪(fǎng)問(wèn)過(guò)的媒體數(shù)據(jù)進(jìn)行存儲(chǔ),重復(fù)使用。
分層緩存部署:在不同物理層部署多臺(tái)緩存服務(wù)器,上層緩存作為下層緩存的內(nèi)容存儲(chǔ)器,為下層緩存供應(yīng)所需內(nèi)容。向用戶(hù)提供服務(wù)的下層緩存向上層緩存服務(wù)器提供所需內(nèi)容,而不是從源站請(qǐng)求。
優(yōu):用戶(hù)獲得內(nèi)容的時(shí)間短,分擔(dān)主站壓力
Cache 設(shè)備原理及代理
Cache設(shè)備分為Web-cache和流媒體Cache兩類(lèi)。
Web-cache用于普通網(wǎng)頁(yè)的內(nèi)容緩存,也提供一定的流媒體、下載支持。
流媒體Cache用于對(duì)視頻流媒體進(jìn)行加速,功能單一。
在一次網(wǎng)頁(yè)訪(fǎng)問(wèn)的過(guò)程中,通常是這樣的:用戶(hù)->代理->網(wǎng)關(guān)->web服務(wù)器。Web-cache設(shè)備通常部署在這條訪(fǎng)問(wèn)的路徑上,通過(guò)正向代理、透明代理的模式,應(yīng)用最多的地方在網(wǎng)關(guān)上。
代理相關(guān)軟件推薦:squid(開(kāi)源),nginx(開(kāi)源),
(內(nèi)網(wǎng)安全行為審計(jì)也是基于此原理,主要指的是透明代理)
正向代理(Forward proxy)
用戶(hù)需要自行設(shè)置代理地址為Web-cache服務(wù)器地址,用戶(hù)對(duì)互聯(lián)網(wǎng)的網(wǎng)絡(luò)訪(fǎng)問(wèn)全部通過(guò)這個(gè)代理地址訪(fǎng)問(wèn)。正向代理支持冗余配置,保證系統(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] |
動(dòng)態(tài)描述:User配置好代理設(shè)備IP并發(fā)起網(wǎng)絡(luò)訪(fǎng)問(wèn)后,所有的數(shù)據(jù)流量都會(huì)經(jīng)過(guò)Proxy device的審核,檢測(cè)代理緩存是否含有User所需的數(shù)據(jù),如有直接返回相應(yīng)數(shù)據(jù),若無(wú),則向serverIp獲取信息,并由proxy device返回給User。
- 正向代理的應(yīng)用
User無(wú)法直接訪(fǎng)問(wèn)web server,需要使用proxy,“Over Wall”就是這個(gè)道理
加速訪(fǎng)問(wèn)web server,一些游戲加速器就是這個(gè)道理
內(nèi)網(wǎng)用戶(hù)鑒權(quán),就是上文提到的內(nèi)網(wǎng)行為審計(jì)
保護(hù)訪(fǎng)問(wèn)路徑,通過(guò)proxy做跳板訪(fǎng)問(wèn)web server不顯示User所在ip,“”肉雞”就是這個(gè)道理
Cache緩存設(shè)備,細(xì)節(jié)同動(dòng)態(tài)描述
反向代理(Backward proxy)
反向代理無(wú)需User設(shè)置,反向代理中的Cache device 地址作為被訪(fǎng)問(wèn)站點(diǎn)的服務(wù)器地址,寫(xiě)入了DNS列表,用戶(hù)無(wú)法感知,對(duì)于用戶(hù)透明。區(qū)別于正向代理的地方是反向代理僅能對(duì)特定站點(diǎn)進(jìn)行加速,內(nèi)容分發(fā)。多用ISP/ICP和運(yùn)營(yíng)商環(huán)境,增加User訪(fǎng)問(wèn)速度和提高滿(mǎn)意度。當(dāng)網(wǎng)絡(luò)中Cache設(shè)備數(shù)目較多時(shí),需要引入GSLB設(shè)定內(nèi)容分發(fā)策略,對(duì)全網(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),安全隔離。對(duì)于CDN技術(shù)來(lái)說(shuō),智能DNS也是很關(guān)鍵的技術(shù)。
透明代理(Transparent proxy)
User無(wú)需配置代理,cache設(shè)備為指定用戶(hù)服務(wù)有兩種辦法:a.user路由設(shè)備支持WCCP協(xié)議,會(huì)將指定用戶(hù)流量轉(zhuǎn)發(fā)至cache設(shè)備。b.利用四層交換機(jī)對(duì)指定用戶(hù)進(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無(wú)察覺(jué)代理審計(jì),直接對(duì)數(shù)據(jù)包進(jìn)行修改,可對(duì)用戶(hù)鑒權(quán),再?zèng)Q定是否回應(yīng)相關(guān)數(shù)據(jù)包給user。(透明代理可以截獲用戶(hù)數(shù)據(jù),完成安全認(rèn)證及訪(fǎng)問(wèn)控制)
web cache 實(shí)現(xiàn)關(guān)鍵
- Web-cache 相當(dāng)于中間人,原本一次點(diǎn)對(duì)點(diǎn)的http請(qǐng)求,可能變成多次http請(qǐng)求,實(shí)現(xiàn)HTTP協(xié)議能力和緩存工作。
- 根據(jù)不同應(yīng)用場(chǎng)景來(lái)確立相應(yīng)策略,主要針對(duì)性能和業(yè)務(wù)??梢詮囊韵路矫婵紤]:
并發(fā)連接數(shù)量、并發(fā)流量大小、存儲(chǔ)空間大小、cpu處理性能及緩存大?。?br> web cache對(duì)數(shù)據(jù)的分析、過(guò)濾和安全保障。 - 面向運(yùn)營(yíng)商的Web-cache要求比面向web站的要高很多。
原文: http://www.chieh.cc/posts/tech/2016-04-19-2016-04-19-Web-Cache-原理及代理方式.html 作者: Chieh