点击上方蓝字关注“汪宇杰博客”
导语
昨天早晨微软服务器发生了核爆,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