cdn加速/網站高并發架構設計
部署圖
部署設計圖如下:
說明:
用戶通過互聯網訪問網站需要經過的節點如下:
一、要通過域名解析
在域名解析處有兩種方式,
1.、自建,自建需要在域名解析前架設防火墻。
2.、使用現有的域名解析提供商,需要設置成CNAME,其實就是另一個域名解析,進行跳轉。在剛開始的時候建議先用CNAME方式,部署不影響用戶現有方式,容易被用戶接受,而且不用暫時不用擔心第一級dns的問題。
總之,如果要建設idc加速,防止ddos攻擊之類的服務,域名解析服務一定要提供,不管是直接提供dns服務還是間接通過cname轉發。
里面的主要技術,是通過用戶請求的ip來得到離用戶最近的服務器的地址,并通過它來提供服務。如果要進行安全防護,比如sql注入檢查,js跨站腳本等可以在這一層進行處理。
二、提供虛擬機
虛擬機現在主流有兩種方式,一是虛擬主機,主要的軟件有開源的openvz,商用的Virtuozzo等,另一類是虛擬機如vmware、xen、kvm等,這類提供虛擬操作系統,可以是異構的。他們兩個的對比主要是虛擬主機的利用率比較高,可以一臺主流pcserver可以虛擬幾十個到上百個虛擬主機,但只能是同一類操作系統。虛擬機的運行效率相對低很多,一般主流pcserver也就十幾個左右。他的有點是異構操作系統,備份管理比較方便。當然在建設的時候可以先用虛擬機,然后在虛擬機上建設虛擬主機。
如果要提供對外服務,ip地址是比不可少的,對于一個用戶來說,一個域名需要幾個點,就需要幾個ip。
三、lvs集群
由于要提供加速等服務,用戶直接使用的openvz虛擬主機的性能和效率一般不大,又要提供高可用性,所以需要通過虛擬主機訪問lvs集群的數據,通過lvs集群來提供服務。
四、Squid
Squid是緩存,尤其是對靜態頁面和文件有很好加速效果。現在sina、sohu等都用它來做緩存加速。
五、Nginx
Nginx主要提供反向代理功能,當通過修改或者更新了頁面,由nginx來負責更新緩存。還有就是動態網站,也是由nginx來提供服務。
Nginx和sqid都可以提供靜態緩存功能,兩者還要結合起來發揮最大效果。如果要進行安全防護,比如sql注入檢查,js跨站腳本等可以在這一層進行處理。
防ddos
防ddos的主要內容由兩個方面:
一、帶寬這個是恨重要的地方,據我現在從網上得到的資料,現在主流的idc機房一般最大提供獨立百兆端口,而且價格不菲。在這種情況下可以機柜租用。這個還需要調研是否可以提供更大的帶寬。
二、防火墻設備
需要在接入口部署防火墻,需要根據idc接口端口來確定容量,有的idc機房也提供此服務。
三、流量牽引設備
這個一般idc機房會提供此服務,這個根據需要是否需要購買。