未雨绸缪 | 一文简介 Azure Front Door
點擊上方藍字關注“汪宇杰博客”
導語
昨天早晨微軟服務器發生了核爆,Office 365,Bing,Azure DevOps全線完蛋。人類文明危在旦夕之際,微軟美國的死士凌晨2點爬起來收福報,修好了服務器,拯救了全人類!究其原因是一個叫 Front Door 的服務部署了新版本,代碼有毒,自動化測試沒有發現故障,直接上線了。那么這個 Front Door 是個咩呀?今天我研究并實踐了一番。真正的軟粉,就要和微軟同呼吸共命運,要爆一起爆!
Azure Front Door
通常,我們把網站部署到 Azure App Service 或者別家云,甚至自己的數據中心后,用戶訪問網站的過程非常簡單,直接從客戶端連接到我們的服務器。這里面會有幾個問題。
首先是訪問速度,比如我的博客在 East Asia 地區,那么美國用戶訪問速度一定會比中國用戶慢。這個好解決,對于靜態資源,我早就使用了 Azure CDN 來改善全球范圍內的速度。然而 CDN 并不能解決所有問題,有些資源訪問還是需要直接到網站服務器的連接。這時候物理位置上靠近用戶的部署會有明顯優勢。Azure Front Door 就可以自動判斷當前離用戶最近的部署,并將用戶轉到該部署。
其次是防爆問題,比如香港廢青摧毀了 East Asia 數據中心,Azure Front Door 能夠檢測到其中一個部署爆掉了,在幾十秒到數分鐘之內,將中國用戶的流量切換到正常運行的部署上,用戶最多感覺網站變慢,但依然可用。
另外是安全問題,黑客或自動化腳本經常會掃描互聯網上的網站,試圖用SQL注入、XSS等手段攻擊網站。那么 Azure Front Door 自帶的 WAF 防火墻可以識別并阻止這些攻擊,包括DDOS、請求頻率等。或者由于法律法規,你可能想屏蔽某一國家或地區對你網站資源的訪問,WAF 也可以配置地區限制。
如何使用
首先,在All services 里找到并創建一個 Front Door 服務
第一步?Frontend hosts?就是用戶的入口,你需要創建一個 自定義名稱.azurefd.net 的入口,隨后可以添加自己的域名。這個入口的意思也就是最終你需要給用戶使用的URL。比如你的網站原本是:https://996.icu 你給它配了個 https://996icu.azurefd.net 那么用戶訪問后者的效果和訪問前者是一樣的。等全部配置完成后,你可以把域名切到 996.icu,對用戶訪問來說不會有任何變化。
在綁定自己域名的時候,Azure 還會免費贈送一個SSL證書:
第二步 Backend pools 是后臺有哪些服務器,你可以選擇 Azure App Service 里既有的網站或者存儲賬戶,也可以自定義到其他云或者自己的數據中心上,反正就是個URL而已,微軟并不強制你要使用 Azure 一條龍。
由于我太窮,Azure上只買得起一個 instance,所以截圖里我就配了一個后端服務器。各位在全球范圍內有服務器的都可以加到這個列表里去,然后就能使用負載均衡功能了。
第三步是路由規則,可以根據自己需要來配置。
防火墻在 Web application firewall 菜單底下可以找到,你可以創建一個或多個策略,用于不同的入口。
其中,微軟免費贈送了一些符合OWASP規范的防火墻規則,比如防SQL注入、XSS、PHP漏洞以及JAVA漏洞的攻擊(咦,.NET去哪兒了?我們就當.NET沒有安全漏洞吧……)
當然,你也可以加自己的規則,比如封掉某個地區的IP之類的。為了避免不必要的麻煩,這里我就不截圖我封了哪個地方了……
WAF 還可以點點鼠標限制請求頻率而不用自己寫代碼996:
落魄街頭
用過 Azure 的朋友都知道一個字:貴。那么這個牛逼的 Front Door 使用以后,會不會導致我們落魄街頭呢?
Azure 官網給出了價格計算表:https://azure.microsoft.com/en-us/pricing/details/frontdoor/
Front Door 本身主要流量計費
WAF 和 Front Door 分開計費
看起來并不會落魄街頭!
想要了解 Azure Front Door 的更多操作,可以點擊【閱讀原文】,或訪問微軟官方文檔:
https://docs.microsoft.com/en-us/azure/frontdoor/?WT.mc_id=AZ-MVP-5002809?
總結
以上是生活随笔為你收集整理的未雨绸缪 | 一文简介 Azure Front Door的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 结合 Golang 开发
- 下一篇: 左手专注,右手时间