第一層:CDN
國內網(wǎng)絡(luò )分布主要南電信北聯(lián)通,造成跨地區訪(fǎng)問(wèn)延遲大問(wèn)題,對于有一定訪(fǎng)問(wèn)量網(wǎng)站來(lái)說(shuō),增加CDN(內容分發(fā)網(wǎng)絡(luò ))層可有效改善此現象,也是網(wǎng)站加速的最好選擇。CDN把網(wǎng)站頁(yè)面緩存到全國分布的節點(diǎn)上,用戶(hù)訪(fǎng)問(wèn)時(shí)從最近的機房獲取數據,這樣大大減少網(wǎng)絡(luò )訪(fǎng)問(wèn)的路徑。如果想自己搭建CDN,不建議這么做,因為什么呢?其實(shí)說(shuō)白了,就是什么事別往運維上攔。CDN架構部署不復雜,影響效果的因素卻很多,后期管理維護也比較復雜,想達到預期的效果確非易事,這是一個(gè)費力不討好的活,最后老板還是感覺(jué)是你能力不足。建議找專(zhuān)做CDN的公司,費用也不貴,有抗流量攻擊能力,效果也很好,運維也少很多事,何樂(lè )而不為呢!
第二層:反向代理(網(wǎng)頁(yè)緩存)
如果CDN沒(méi)有緩存要請求的數據則向這層發(fā)起請求,在代理服務(wù)器配置緩存功能(本地),代理服務(wù)器就查找本地緩存是否有CDN請求的數據,如果有就直接返回給CDN,如果沒(méi)有則請求后端負載均衡器然后轉發(fā)給WEB服務(wù)器返回數據給代理服務(wù)器,代理服務(wù)器再將結果給CDN。代理服務(wù)器一般緩存不經(jīng)常變動(dòng)的靜態(tài)頁(yè)面,如image、js、css、html等,主流的緩存軟件有Squid、Varnish、Nginx。
第三層:負載均衡
訪(fǎng)問(wèn)量較大的網(wǎng)站都會(huì )用到負載均衡,因為這是解決單臺服務(wù)器性能瓶頸的最好辦法。反向代理將請求轉發(fā)給負載均衡器,負載均衡器根據算法(輪訓、負載情況選擇后端等)交給后端WEB服務(wù)處理,WEB服務(wù)處理完成后直接返回數據給反向代理服務(wù)器。負載均衡合理分配請求給后端多臺WEB服務(wù)器,減輕單臺服務(wù)器并發(fā)負載,并保證服務(wù)可用性。主流的負載均衡軟件有LVS、HAProxy、Nginx。
第四層:WEB服務(wù)
WEB服務(wù)是處理用戶(hù)請求的,WEB服務(wù)處理效率,直接影響到訪(fǎng)問(wèn)速度,為避免這層因素造成訪(fǎng)問(wèn)慢,應對其進(jìn)行調優(yōu),讓W(xué)EB服務(wù)發(fā)揮到最佳狀態(tài)。常見(jiàn)的WEB服務(wù)有Apache和Nginx。