淺談CDN技術(shù)的基本原理與阿里云CDN的使用
如果你有一個(gè)小站,經(jīng)過細(xì)心經(jīng)營(yíng),流量慢慢變大,或者你想搞個(gè)活動(dòng),請(qǐng)求量會(huì)比平時(shí)多很多。你租的虛擬主機(jī)網(wǎng)絡(luò)可能會(huì)被打 爆,導(dǎo)致整個(gè)網(wǎng)站打開變慢。想擴(kuò)大帶寬卻發(fā)現(xiàn)獨(dú)享帶寬很貴,這個(gè)時(shí)候你可以使用CDN。如
如果你有一個(gè)小站,經(jīng)過細(xì)心經(jīng)營(yíng),流量慢慢變大,或者你想搞個(gè)活動(dòng),請(qǐng)求量會(huì)比平時(shí)多很多。你租的虛擬主機(jī)網(wǎng)絡(luò)可能會(huì)被打 爆,導(dǎo)致整個(gè)網(wǎng)站打開變慢。想擴(kuò)大帶寬卻發(fā)現(xiàn)獨(dú)享帶寬很貴,這個(gè)時(shí)候你可以使用CDN。如果你有一個(gè)店鋪,業(yè)務(wù)慢慢做大,客戶遍布全國(guó)甚至全球,你時(shí)常收到客戶的抱怨,你的網(wǎng)站在某個(gè)地區(qū)打開很慢。那么你可以使 用CDN?;ヂ?lián)網(wǎng)江湖險(xiǎn)惡,你經(jīng)營(yíng)的網(wǎng)站時(shí)常遭到競(jìng)爭(zhēng)對(duì)手的攻擊或者其他不明身份人的入侵,僅僅憑借你的幾臺(tái)服務(wù)器,無力對(duì)抗邪惡勢(shì) 力,你也沒有足夠的資金去雇傭安全人員。那么,你也可以使用CDN?,F(xiàn)代的CDN (Content delivery network),俗稱內(nèi)容分發(fā)網(wǎng)絡(luò),它提供充足的帶寬、遍布全國(guó)的節(jié)點(diǎn),讓你的網(wǎng)站部署到了客戶的家門口。此外,現(xiàn)代CDN一般都有提供全套的安全解決 方案,保護(hù)你的源站,將危險(xiǎn)擋在墻外。
CDN是如何運(yùn)行的?一般來說,用戶是這樣通過CDN來訪問網(wǎng)站的:1. 用戶是通過域名來訪問網(wǎng)站的,然后各地用戶的請(qǐng)求會(huì)被調(diào)配到當(dāng)?shù)氐腃DN節(jié)點(diǎn)。2. CDN節(jié)點(diǎn)會(huì)從真實(shí)的源網(wǎng)站拿到內(nèi)容,再吐給用戶。如果該內(nèi)容可以緩存,則會(huì)根據(jù)協(xié)議存在CDN一段時(shí)間。如果下次有其他用戶再來訪問CDN,就有可能拿 到緩存的內(nèi)容,就直接返回了。
現(xiàn)在互聯(lián)網(wǎng)的攻擊一般分為兩種:1. 依靠蠻力的分布式攻擊,用海量的肉雞不停的訪問你的網(wǎng)站,讓你的出口帶寬撐滿,服務(wù)器過載,不能服務(wù)。2. 依靠巧力的滲透攻擊,流量可能不大,但是危害性非常高。比如利用網(wǎng)站的漏洞入侵你的數(shù)據(jù)庫,破解你的服務(wù)器密碼。CDN是網(wǎng)站的前哨,根據(jù)上述攻擊類型:1. 針對(duì)蠻力攻擊,一般會(huì)構(gòu)建硬件或者軟件的防御工具,利用CDN海量的帶寬和數(shù)據(jù)分析能力,將洪水擋在外面。2. 防御滲透攻擊,依靠安全人員充足的經(jīng)驗(yàn),利用規(guī)則進(jìn)行入侵檢測(cè),建立起應(yīng)用層的防火墻。
阿里云CDNCDN的價(jià)值就在于遍布全國(guó)的節(jié)點(diǎn),強(qiáng)大的帶寬吞吐能力。阿里云現(xiàn)在單點(diǎn)最小服務(wù)能力是10G,全國(guó)超過40余個(gè)節(jié)點(diǎn),大部 分省份和運(yùn)營(yíng)商均有覆蓋,可以幫助客戶提高網(wǎng)站的服務(wù)體驗(yàn),靈活處理突發(fā)的流量。有充滿經(jīng)驗(yàn)的技術(shù)和運(yùn)營(yíng)人員,保障過淘寶雙11,讓客戶 的體驗(yàn)達(dá)到最佳。阿里云CDN提供了從4層到7層的安全解決方案,只要接入CDN,就會(huì)自動(dòng)開啟4層防DDoS攻擊,可防御400G以上的攻 擊,另外也可配置選擇接入應(yīng)用層防DDoS和滲透攻擊。阿里云有頂尖的安全技術(shù)人員日夜監(jiān)控網(wǎng)站的風(fēng)險(xiǎn),為客戶及時(shí)修補(bǔ)漏洞。
云解析負(fù)載均衡
在大型的網(wǎng)絡(luò)應(yīng)用中,使用多臺(tái)服務(wù)器提供同一個(gè)服務(wù)。平均分配每臺(tái)服務(wù)器上的壓力、將壓力分散的方法就叫做負(fù)載均衡。 利用云解析來實(shí)現(xiàn)服務(wù)器流量的負(fù)載均衡,其原理就是給網(wǎng)站訪問者分配不同的IP地址。例如:有3臺(tái)服務(wù)器,對(duì)應(yīng)3個(gè)IP地址,分別是1.1.1.1、2.2.2.2、3.3.3.3,設(shè)置的3個(gè)A記錄如下:
A www default 1.1.1.1 600
A www default 2.2.2.2 600
A www default 3.3.3.3 600
DNS負(fù)載均衡的優(yōu)點(diǎn)是采用簡(jiǎn)單的輪循負(fù)載算法,據(jù)解析記錄配置的權(quán)重輪詢3個(gè)A記錄(默認(rèn)權(quán)重1:1:1),依次返回3個(gè)IP地址,
操作流程:
第1步:免費(fèi)開啟云解析,進(jìn)入到域名控制臺(tái)
第2步:將您要設(shè)置的負(fù)載均衡設(shè)置多個(gè)A記錄解析
第3步:點(diǎn)擊左側(cè)負(fù)載均衡,選中域名,點(diǎn)開啟確認(rèn)即可,并根據(jù)自身需求修改權(quán)重即可
對(duì)HTTPS的支持阿里云已經(jīng)在1月20日上線了 HTTPS CDN。
步驟總體而言很簡(jiǎn)單,輸入證書和私鑰
修改之后業(yè)務(wù)類型會(huì)變成 HTTPS 安全。實(shí)際上 nginx 配置里的 ssl_certificate 和 ssl_certificate_key 就是 pem 編碼的,直接拿來就能用。
如果提示證書格式不對(duì),是因?yàn)橐竺啃?4字符,比如我使用的 alphassl 的泛域名證書就有一行超過64字符,輸入的時(shí)候在 U 前面換一行就行。
關(guān)于使用了 CDN 之后的日志問題(訪問的就都變成了 CDN 服務(wù)器),可以通過修改 nginx 的 log_format 實(shí)現(xiàn):
在 /etc/nginx/nginx.conf 的 http 字段下添加一行 log_format :log_format ssl '$http_x_forwarded_for - $remote_user [$time_local] "$request" ' ' $ssl_protocol/$ssl_cipher ' ' $status $body_bytes_sent "$http_referer""$http_user_agent" ';然后在對(duì)應(yīng)站點(diǎn)的配置下把 Access log 的配置改掉:access_log /var/log/nginx/blog_access.log ssl;不能在監(jiān)聽443的 Server 區(qū)塊里直接定義 log_format,否則會(huì)報(bào)錯(cuò) nginx [emerg]:log_format directive is not allowed