如果你有一個小站,經過細心經營,流量慢慢變大,或者你想搞個活動,請求量會比平時多很多。你租的虛擬主機網絡可能會被打 爆,導致整個網站打開變慢。想擴大帶寬卻發現獨享帶寬很貴,這個時候你可以使用CDN。
如果你有一個店鋪,業務慢慢做大,客戶遍布全國甚至全球,你時常收到客戶的抱怨,你的網站在某個地區打開很慢。那么你可以使 用CDN。
互聯網江湖險惡,你經營的網站時常遭到競爭對手的攻擊或者其他不明身份人的入侵,僅僅憑借你的幾臺服務器,無力對抗邪惡勢 力,你也沒有足夠的資金去雇傭安全人員。那么,你也可以使用CDN。
現代的CDN (Content delivery network),俗稱內容分發網絡,它提供充足的帶寬、遍布全國的節點,讓你的網站部署到了客戶的家門口。此外,現代CDN一般都有提供全套的安全解決 方案,保護你的源站,將危險擋在墻外。
CDN是如何運行的?
一般來說,用戶是這樣通過CDN來訪問網站的:
1. 用戶是通過域名來訪問網站的,然后各地用戶的請求會被調配到當地的CDN節點。
2. CDN節點會從真實的源網站拿到內容,再吐給用戶。如果該內容可以緩存,則會根據協議存在CDN一段時間。如果下次有其他用戶再來訪問CDN,就有可能拿 到緩存的內容,就直接返回了。

現在互聯網的攻擊一般分為兩種:
1. 依靠蠻力的分布式攻擊,用海量的“肉雞”不停的訪問你的網站,讓你的出口帶寬撐滿,服務器過載,不能服務。
2. 依靠巧力的滲透攻擊,流量可能不大,但是危害性非常高。比如利用網站的漏洞入侵你的數據庫,破解你的服務器密碼。
CDN是網站的前哨,根據上述攻擊類型:
1. 針對蠻力攻擊,一般會構建硬件或者軟件的防御工具,利用CDN海量的帶寬和數據分析能力,將洪水擋在外面。
2. 防御滲透攻擊,依靠安全人員充足的經驗,利用規則進行入侵檢測,建立起應用層的防火墻。

阿里云CDN
CDN的價值就在于遍布全國的節點,強大的帶寬吞吐能力。阿里云現在單點最小服務能力是10G,全國超過40余個節點,大部 分省份和運營商均有覆蓋,可以幫助客戶提高網站的服務體驗,靈活處理突發的流量。有充滿經驗的技術和運營人員,保障過淘寶雙11,讓客戶 的體驗達到最佳。
阿里云CDN提供了從4層到7層的安全解決方案,只要接入CDN,就會自動開啟4層防DDoS攻擊,可防御400G以上的攻 擊,另外也可配置選擇接入應用層防DDoS和滲透攻擊。阿里云有頂尖的安全技術人員日夜監控網站的風險,為客戶及時修補漏洞。
云解析負載均衡
在大型的網絡應用中,使用多臺服務器提供同一個服務。平均分配每臺服務器上的壓力、將壓力分散的方法就叫做負載均衡。 利用云解析來實現服務器流量的負載均衡,其原理就是“給網站訪問者分配不同的IP地址”。
例如:有3臺服務器,對應3個IP地址,分別是1.1.1.1、2.2.2.2、3.3.3.3,設置的3個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負載均衡的優點是采用簡單的輪循負載算法,據解析記錄配置的權重輪詢3個A記錄(默認權重1:1:1),依次返回3個IP地址,
操作流程:
第1步:免費開啟云解析,進入到域名控制臺
第2步:將您要設置的負載均衡設置多個A記錄解析
第3步:點擊左側負載均衡,選中域名,點開啟確認即可,并根據自身需求修改權重即可
對HTTPS的支持
阿里云已經在1月20日上線了 HTTPS CDN。

步驟總體而言很簡單,輸入證書和私鑰

修改之后業務類型會變成 HTTPS 安全。
實際上 nginx 配置里的 ssl_certificate 和 ssl_certificate_key 就是 pem 編碼的,直接拿來就能用。
如果提示證書格式不對,是因為要求每行64字符,比如我使用的 alphassl 的泛域名證書就有一行超過64字符,輸入的時候在 U 前面換一行就行。

關于使用了 CDN 之后的日志問題(訪問的就都變成了 CDN 服務器),可以通過修改 nginx 的 log_format 實現:
在 /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" ';
然后在對應站點的配置下把 Access log 的配置改掉:
access_log /var/log/nginx/blog_access.log ssl;
不能在監聽443的 Server 區塊里直接定義 log_format,否則會報錯 nginx [emerg]:”log_format” directive is not allowed