相信有些朋友看過筆者以前寫的這篇文章 《如何爲企業快速設計高可用的阿里雲架構》,並對阿里雲的一些服務和產品的選型有了初步的瞭解,其實這篇文章寫得比較粗,只是對企業選型描述大概的框架,並無用太多筆墨來描述具體實現過程、配置操做。而致使有些博友看了也不過癮。php
因此,筆者這就要和你們一塊兒來討論一下《 阿里雲高可用架構之「CDN+WAF+SLB+ECS」》如何實現,以及具體配置過程是怎樣的。爲何拿這個架構來討論呢,主要是這個架構目前在企業中使用率比較通用、廣泛,也比較有表明性。html
若是在企業中要具體來配置和實現,若是沒有操過的朋友可能會有點暈、還會有點膽怯,具體該如何實現呢?不用擔憂。下面咱們一塊兒把它玩起來。前端
CND(入口層)-> WAF(應用層防禦)-> SLB(負載層)-> ECS(服務器源站) -> RDS(數據庫)java
域名 cname CDN
CDN指向WAF
WAF指向SLB
SLB負載ECS
說明:在企業中固然還會有其餘的服務,比較redis、oss、nfs、監控、彈性ip、日誌等等服務,這些都不是本文的重點,本文的重點主要介紹CDN>WAF>SLB>ECS這幾層服務的關係該如何配置,從哪一層開始配置是最爲適合。nginx
無非是兩種思路:從外到內、從內到外。web
從外到內:什麼是從外到內呢?剛纔也分析了,即從CDN開始配置,逐漸往內配置一直到最裏面的ECS服務器,這種思路方法筆者不建議。redis
從內到外:理解了從外到內以後,在來理解從內到外就簡單多了。從最底層ECS服務器開始配置測試,在慢慢的往外層配置和測試,直到CDN最外那一層,建議用這種方法配置,便於在配置過程當中的測試及問題排查。算法
下面咱們來看下從內到外的配置方法具體是怎麼實現的(ECS>SLB>WAF>CDN>域名)。數據庫
服務器上無非是部署項目,在企業中比較廣泛的是php項目或者java項目。後端
至於具體怎麼配置這些,相信你們都很熟悉。不過筆者建議在nginx的配置時候不建議使用upstream,由於ecs服務器前面已經有一層slb了。舉個例子吧:
upstream tomcat_server { server 10.0.0.10:8080; server 10.0.0.20:8080; } location / { root html; index index.html index.htm; proxy_pass http://tomcat_server;
像上面這種upstream就能夠省去了,ecs前面掛了slb以後,nginx上的upstream就沒有實際的意義了。
開通SLB > 配置「虛擬服務器組」 > 「添加監聽」
SLB負載均衡,開通即用。有兩種類型的方式(公網、私網)。顧名思義,公網就是帶公網IP的負載地址。私網就是帶私網IP的負載地址。以下圖:
說明:
本文中選用的是公網負載,由於在本案中SLB上面(外)有一層WAF,WAF下面(內)必須是公網IP的服務器或SLB,WAF上面(外)爲CDN。
SLB的計費方式有兩種,流量和固定帶寬,根據公司的預算進行選擇,建議帶寬和規格也要根據業務需求來選型。好比,開通某個SLB,下面掛載的ECS服務器集羣不大,業務訪問量也很少,那麼開通的這個SLB帶寬和實例規格就能夠小一點。
開通SLB還要注意一點,若是公司項目多,ECS集羣多,那麼最好1個SLB對應1個ECS集羣環境。不要爲了省這點錢影響之後業務性能。若是公司就一個項目,就那麼三、5臺ECS服務器,開通一個SLB我以爲徹底就夠用了。好比下圖,就開通了好幾個SLB實例,每一個SLB對應相應的ECS集羣服務器:
開通好了以後,開始配置,點擊「管理「進入SLB實例,添加」虛擬服務器組「,以下圖
把服務器添加到右邊的列表中,配置端口,權重默認都爲100,若是大家服務器每臺配置都不同,可適當調一下權重,好比配置低一點的服務器,把權重調小一點(70、60等)。
調度算法:加權輪詢(默認),權重值越高的後端服務器,被輪詢到的次數(機率)也越高。
使用虛擬服務器組:把剛纔配置的「虛擬服務器組」選上就行
會話保持:開啓,HTTP 協議會話保持基於cookie。若是業務不須要會話保持,可不用開啓此功能。
會話保持時間:3600,這個時間和開發商量一下配置多少合適。
Gzip數據壓縮:開啓,開啓將對特定文件類型進行壓縮;關閉則不會對任何文件類型進行壓縮。
server { listen 80; server_name test.ganbing.com index index.html index.htm; root html; access_log off; }
注意:上面的 access_log建議off掉,否則access.log會由於slb的健康檢查天天會生成一大堆無用的日誌。
到此,SLB就配置到這裏了,若是有HTTPS協議,須要在添加一項監聽,並把證書掛上去。下面咱們來看一下waf的配置。
添加網站 > 初步的「防禦配置」
注意,若是公司有HTTPS協議,並且須要強HTTPS強制跳轉,須要配置「高級設置」,以下圖:
(開啓後,HTTP請求將顯示爲HTTPS,默認跳轉到443端口)
先把防禦初始化一下,簡單配置開啓相關防禦項,後期在慢慢細化它。
把waf的域名先複製,後面配置cdn用得上,而後咱們繼續下去,把最後一層CDN搞定。
添加域名 > 基礎配置 > 其它可選項配置
a,添加域名,建議使用「全站加速域名」新的CDN產品,以下圖:
說明:全站加速產品,是融合了 動態加速 和 靜態加速 技術的CDN產品。該產品一站式解決了頁面動靜態資源混雜、跨運營商、網絡不穩定、單線源站、突發流量、網絡擁塞等諸多因素致使的響應慢、丟包、服務不穩定的問題,提高全站性能和用戶體驗。
b,基礎配置,以下圖:
加速域名:test.ganbing.com,輸入使用的域名。
源站信息:選擇「源站域名」,粘貼剛纔複製的waf域名。
端口:80端口
c,回源配置,可選項配置,可根據業務需求配置,這裏筆者開啓了「靜態協議跟隨加源」,以下圖:
說明:開啓"靜態協議跟隨加源"該功能後,回源使用協議和客戶端訪問資源的協議保持一致。即若是客戶端使用 HTTPS 方式請求資源,當節點上未緩存該資源時,會使用相同的 HTTPS 方式回源獲取資源;同理,客戶端使用 HTTP 方式請求資源,節點回源時以 HTTP 方式請求。
d,動靜態加速規則,這裏筆者也開啓了,這個是可選項,能夠不用開啓,也是根據自身業務需求來使用,以下圖:
說明:
開啓:可自定義動靜態資源加速規則,靜態內容使用邊緣緩存,動態內容採用最優路由回源
關閉:無動態內容加速效果,僅保留靜態邊緣緩存功能
若是業務須要httt強制https,則須要修改強制跳轉的配置,以下圖:
把CDN的CNAME地址複製好,用於等下解析到域名上,以下圖:
好了,cdn也配置好了,最後把域名解析到cdn便可。
進入ganbing.com域名,配置cname解析,以下圖:
域名解析好了以後,在瀏覽器進行驗證吧。
整個過程到此結束,這麼一套架構配置下來扛住上百萬的用戶是絕對妥妥的,安全、穩定、可靠。老鐵們開搞吧。
一、整個配置過程最主要的是順序和思路不要亂,最好畫個草圖,先從哪開始,到哪結束。
二、每配置好一層的時候,能夠當時就解析到域名進行驗證,好比你把SLB配置好了,當時就能夠把SLB的IP解析到域名進行驗證,肯定沒問題後,在配置上一層。
三、HTTP和HTTPS的需求搞清楚,公司的域名有沒有買CA證書,若是有,整個業務是HTTP、HTTPS共享呢,仍是HTTP強制跳轉HTTPS呢?若是沒有CA證書,那就只能用HTTP協議了。
四、配置好了以後,一層一層的把監控報警作好,建議也是從最內層(底層)開始配置。
本章內容到此結束,喜歡個人文章,請點擊最上方右角處的《關注》!!!