一、阿里云高可用架构之“CDN+WAF+SLB+ECS” 支持100万并发。 架构图
架构层级关系CND(入口层)-> WAF(应用层防护)-> SLB(负载层)-> ECS(服务器源站) -> RDS(数据库)
域名 cname CDN
CDN指向WAF
WAF指向SLB
SLB负载ECS
说明:在企业中当然还会有其他的服务,比较redis、oss、nfs、监控、弹性ip、日志等等服务,这些都不是本文的重点,本文的重点主要介绍CDN>WAF>SLB>ECS这几层服务的关系该如何配置,从哪一层开始配置是最为适合。
无非是两种思路:从外到内、从内到外。
从外到内:什么是从外到内呢?刚才也分析了,即从CDN开始配置,逐渐往内配置一直到最里面的ECS服务器,这种思路方法笔者不建议。
从内到外:理解了从外到内之后,在来理解从内到外就简单多了。从最底层ECS服务器开始配置测试,在慢慢的往外层配置和测试,直到CDN最外那一层,建议用这种方法配置,便于在配置过程中的测试及问题排查。
下面我们来看下从内到外的配置方法具体是怎么实现的(ECS>SLB>WAF>CDN>域名)。
具体实现 1.ECS服务器服务器上无非是部署项目,在企业中比较普遍的是php项目或者java项目。
php项目:服务器上部署nginx+php
java项目:服务器上部署nginx+jdk+tomcat
至于具体怎么配置这些,相信大家都很熟悉。不过笔者建议在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 ;像上面这种upstream就可以省去了,ecs前面挂了slb之后,nginx上的upstream就没有实际的意义了。
2.SLB负载均衡 SLB配置思路开通SLB > 配置“虚拟服务器组” > “添加监听”
开通SLB实例 SLB负载均衡,开通即用。有两种类型的方式(公网、私网)。顾名思义,公网就是带公网IP的负载地址。私网就是带私网IP的负载地址。如下图:
说明:
本文中选用的是公网负载,因为在本案中SLB上面(外)有一层WAF,WAF下面(内)必须是公网IP的服务器或SLB,WAF上面(外)为CDN。
SLB的计费方式有两种,流量和固定带宽,根据公司的预算进行选择,建议带宽和规格也要根据业务需求来选型。比如,开通某个SLB,下面挂载的ECS服务器集群不大,业务访问量也不多,那么开通的这个SLB带宽和实例规格就可以小一点。
开通SLB还要注意一点,如果公司项目多,ECS集群多,那么最好1个SLB对应1个ECS集群环境。不要为了省这点钱影响以后业务性能。如果公司就一个项目,就那么3、5台ECS服务器,开通一个SLB我觉得完全就够用了。比如下图,就开通了好几个SLB实例,每个SLB对应相应的ECS集群服务器:
开通好了之后,开始配置,点击“管理“进入SLB实例,添加”虚拟服务器组“,如下图
把服务器添加到右边的列表中,配置端口,权重默认都为100,如果你们服务器每台配置都不一样,可适当调一下权重,比如配置低一点的服务器,把权重调小一点(70、60等)。 “添加监听”