相信有些朋友看过笔者以前写的这篇文章 《如何为企业快速设计高可用的阿里云架构》,并对阿里云的一些服务和产品的选型有了初步的了解,其实这篇文章写得比较粗,只是对企业选型描述大概的框架,并无用太多笔墨来描述具体实现过程、配置操做。而致使有些博友看了也不过瘾。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协议了。
四、配置好了以后,一层一层的把监控报警作好,建议也是从最内层(底层)开始配置。
本章内容到此结束,喜欢个人文章,请点击最上方右角处的《关注》!!!