阿里云高可用架构之“CDN+WAF+SLB+ECS

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
Web应用防火墙 3.0,每月20元额度 3个月
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 【企业实战】:阿里云高可用架构之“CDN+WAF+SLB+ECS”  相信有些朋友看过笔者之前写的这篇文章 《如何为企业快速设计高可用的阿里云架构》,并对阿里云的一些服务和产品的选型有了初步的了解,其实这篇文章写得比较粗,只是对企业选型描述大概的框架,并没有用太多笔墨来描述具体实现过程、配置操作。

【企业实战】:阿里云高可用架构之“CDN+WAF+SLB+ECS”


 相信有些朋友看过笔者之前写的这篇文章 《如何为企业快速设计高可用的阿里云架构》,并对阿里云的一些服务和产品的选型有了初步的了解,其实这篇文章写得比较粗,只是对企业选型描述大概的框架,并没有用太多笔墨来描述具体实现过程、配置操作。而导致有些博友看了也不过瘾。

 所以,笔者这就要和大家一起来讨论一下《 阿里云高可用架构之“CDN+WAF+SLB+ECS”》如何实现,以及具体配置过程是怎样的。为什么拿这个架构来讨论呢,主要是这个架构目前在企业中使用率比较通用、普遍,也比较有代表性。

 如果在企业中要具体来配置和实现,如果没有操过的朋友可能会有点晕、还会有点胆怯,具体该如何实现呢?不用担心。下面我们一起把它玩起来。

架构图

【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS

架构层级关系

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 http://tomcat_server;

像上面这种upstream就可以省去了,ecs前面挂了slb之后,nginx上的upstream就没有实际的意义了。

2.SLB负载均衡

SLB配置思路

开通SLB > 配置“虚拟服务器组” > “添加监听”

开通SLB实例

 SLB负载均衡,开通即用。有两种类型的方式(公网、私网)。顾名思义,公网就是带公网IP的负载地址。私网就是带私网IP的负载地址。如下图:
【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS

说明:
 本文中选用的是公网负载,因为在本案中SLB上面(外)有一层WAF,WAF下面(内)必须是公网IP的服务器或SLB,WAF上面(外)为CDN。

 SLB的计费方式有两种,流量和固定带宽,根据公司的预算进行选择,建议带宽和规格也要根据业务需求来选型。比如,开通某个SLB,下面挂载的ECS服务器集群不大,业务访问量也不多,那么开通的这个SLB带宽和实例规格就可以小一点。

 开通SLB还要注意一点,如果公司项目多,ECS集群多,那么最好1个SLB对应1个ECS集群环境。不要为了省这点钱影响以后业务性能。如果公司就一个项目,就那么3、5台ECS服务器,开通一个SLB我觉得完全就够用了。比如下图,就开通了好几个SLB实例,每个SLB对应相应的ECS集群服务器:
【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS

配置“虚拟服务器组”

开通好了之后,开始配置,点击“管理“进入SLB实例,添加”虚拟服务器组“,如下图
【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS
【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS
把服务器添加到右边的列表中,配置端口,权重默认都为100,如果你们服务器每台配置都不一样,可适当调一下权重,比如配置低一点的服务器,把权重调小一点(70、60等)。

“添加监听”
  • a,添加监听,配置“基本配置”,如下图:
    【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS
    前端协议:HTTP 80
    后端协议:HTTP 80

调度算法:加权轮询(默认),权重值越高的后端服务器,被轮询到的次数(概率)也越高。
使用虚拟服务器组:把刚才配置的“虚拟服务器组”选上就行

  • b,高级配置,如下图:
    【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS

会话保持:开启,HTTP 协议会话保持基于cookie。如果业务不需要会话保持,可不用开启此功能。
会话保持时间:3600,这个时间和开发商量一下配置多少合适。
Gzip数据压缩:开启,开启将对特定文件类型进行压缩;关闭则不会对任何文件类型进行压缩。

  • c,健康检查,如下图:
    当然,你可以不开启健康检查,如不开启,SLB不管后端ECS服务器是不是存活,它都会按照策略进行负载下去。所以一般建议开启它。
    【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS
    域名:自定义
    检查端口:80
    检查路径:/test.html,这也是自定义静态页面,用于SLB检查ECS服务器的页面,放在ECS服务器的根目录下面就行,test.html里面内容可以为空,也可以随便写点东西进去。比如笔者自定义了一个server,如下图:

    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的配置。

3.WAF防火墙

WAF配置思路

添加网站 > 初步的“防护配置”

配置waf

  • a,添加网站,如下图:
    【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS
    【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS
    域名:test.ganbing.com,配置项目的域名。
    协议类型:如果公司没有HTTPS,就选HTTP。
    服务器地址:IP,这里配置SLB 的IP地址。如果没有SLB(或者你们公司不打算用SLB),这里就直接配置ECS服务器的公网IP。
    WAF前是否有七层代理(高防/CDN等):是,这个选项已经提示很明显了,如果WAF前面有CDN就选是,没有就选否。
    负载均衡算法:IP hash。

注意,如果公司有HTTPS协议,而且需要强HTTPS强制跳转,需要配置“高级设置”,如下图:
【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS
(开启后,HTTP请求将显示为HTTPS,默认跳转到443端口)

  • b,初始化“防护配置”
    【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS
    web应用×××防护:模式/防护,防护规则策略/正常
    恶意IP惩罚:启用
    CC安全防护:模式/正常
    精准访问控制:启用

先把防护初始化一下,简单配置开启相关防护项,后期在慢慢细化它。

  • c,复制配置好的waf域名,如下图:
    【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS

把waf的域名先复制,后面配置cdn用得上,然后我们继续下去,把最后一层CDN搞定。

4.CDN

CDN配置思路

添加域名 > 基础配置 > 其它可选项配置

配置CDN

  • a,添加域名,建议使用“全站加速域名”新的CDN产品,如下图:
    【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS
    说明:全站加速产品,是融合了 动态加速 和 静态加速 技术的CDN产品。该产品一站式解决了页面动静态资源混杂、跨运营商、网络不稳定、单线源站、突发流量、网络拥塞等诸多因素导致的响应慢、丢包、服务不稳定的问题,提升全站性能和用户体验。

  • b,基础配置,如下图:
    【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS
    加速域名:test.ganbing.com,输入使用的域名。
    源站信息:选择“源站域名”,粘贴刚才复制的waf域名。
    端口:80端口

  • c,回源配置,可选项配置,可根据业务需求配置,这里笔者开启了“静态协议跟随加源”,如下图:
    【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS
    说明:开启"静态协议跟随加源"该功能后,回源使用协议和客户端访问资源的协议保持一致。即如果客户端使用 HTTPS 方式请求资源,当节点上未缓存该资源时,会使用相同的 HTTPS 方式回源获取资源;同理,客户端使用 HTTP 方式请求资源,节点回源时以 HTTP 方式请求。

  • d,动静态加速规则,这里笔者也开启了,这个是可选项,可以不用开启,也是根据自身业务需求来使用,如下图:
    【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS
    说明:
    开启:可自定义动静态资源加速规则,静态内容使用边缘缓存,动态内容采用最优路由回源 
    关闭:无动态内容加速效果,仅保留静态边缘缓存功能

  • e,https配置,如果你们公司用的是https,一定要配置此项,如果没有https,这项可不用配置,如下图:
    【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS
    【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS

如果业务需要httt强制https,则需要修改强制跳转的配置,如下图:
【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS

  • f,另外,还可以开启智能压缩,页面优化等功能,这也是可选项配置,如下图:
    【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS
    页面优化:去除页面冗余内容如HTML页面、内嵌Javascript和CSS中的注释以及重复的空白符。
    智能压缩:对静态文件类型进行压缩,有效减少用户传输内容大小。

复制CDN地址

把CDN的CNAME地址复制好,用于等下解析到域名上,如下图:
【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS

好了,cdn也配置好了,最后把域名解析到cdn即可。

测试验证

进入ganbing.com域名,配置cname解析,如下图:
【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS

域名解析好了之后,在浏览器进行验证吧。

整个过程到此结束,这么一套架构配置下来扛住上百万的用户是绝对妥妥的,安全、稳定、可靠。老铁们开搞吧。

总结

1、整个配置过程最主要的是顺序和思路不要乱,最好画个草图,先从哪开始,到哪结束。
2、每配置好一层的时候,可以当时就解析到域名进行验证,比如你把SLB配置好了,当时就可以把SLB的IP解析到域名进行验证,确定没问题后,在配置上一层。
3、HTTP和HTTPS的需求搞清楚,公司的域名有没有买CA证书,如果有,整个业务是HTTP、HTTPS共享呢,还是HTTP强制跳转HTTPS呢?如果没有CA证书,那就只能用HTTP协议了。
4、配置好了之后,一层一层的把监控报警做好,建议也是从最内层(底层)开始配置。

本章内容到此结束,喜欢我的文章,请点击最上方右角处的《关注》!!!

【企业实战】:阿里云高可用架构之CDN+WAF+SLB+ECS


相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
10天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
8天前
|
编解码 前端开发 安全
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
在我们选购阿里云服务器的过程中,不管是新用户还是老用户通常都是通过阿里云的活动去买了,一是价格更加实惠,二是活动中的云服务器配置比较丰富,足可以满足大部分用户的需求,但是面对琳琅满目的云服务器实例、带宽和云盘选项,如何选择更适合自己,成为许多用户比较关注的问题。本文将介绍如何在阿里云的活动中选择合适的云服务器实例、带宽和云盘,以供参考和选择。
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
|
6天前
|
弹性计算 运维 安全
阿里云轻量应用服务器和经济型e实例区别及选择参考
目前在阿里云的活动中,轻量应用服务器2核2G3M带宽价格为82元1年,2核2G3M带宽的经济型e实例云服务器价格99元1年,对于云服务器配置和性能要求不是很高的阿里云用户来说,这两款服务器配置和价格都差不多,阿里云轻量应用服务器和ECS云服务器让用户二选一,很多用户不清楚如何选择,本文来说说轻量应用服务器和经济型e实例的区别及选择参考。
阿里云轻量应用服务器和经济型e实例区别及选择参考
|
7天前
|
机器学习/深度学习 存储 人工智能
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
阿里云的GPU云服务器产品线在深度学习、科学计算、图形渲染等多个领域展现出强大的计算能力和广泛的应用价值。本文将详细介绍阿里云GPU云服务器中的gn6v、gn7i、gn6i三个实例规格族的性能特点、区别及选择参考,帮助用户根据自身需求选择合适的GPU云服务器实例。
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
|
15天前
|
存储 弹性计算 SDN
企业级 ECS 集群的构建需要综合考虑多个因素,通过不断的比较和对比不同的方案,选择最适合企业自身需求和发展的架构。
【9月更文挑战第5天】在数字化商业环境中,构建企业级ECS(弹性计算服务)集群对提升业务稳定性、扩展性和性能至关重要。本文将比较传统物理服务器与ECS架构,分析云服务商选择(如AWS和阿里云)、实例配置(CPU/内存)、网络架构(SDN vs 传统)及存储方案(本地存储 vs 云存储),帮助企业根据自身需求选出最优方案,实现高效稳定的ECS集群部署。
48 18
|
9天前
|
弹性计算
阿里云美国服务器需要备案吗?必看!
阿里云美国服务器无需ICP备案,适用于希望避开备案流程的用户。不同于中国大陆地区服务器,美国服务器及中国香港服务器均无需备案。用户可直接解析域名使用。阿里云提供美国云服务器ECS与轻量应用服务器两种选择,分别满足不同需求
53 9
|
1天前
|
人工智能 运维 Cloud Native
专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来
AI智算时代,服务器操作系统面临的挑战与机遇有哪些?
专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来
|
11天前
|
网络安全 开发工具 云计算
服务器看代码阿里云
随着云计算技术的发展,阿里云作为国内领先的云计算服务提供商,其服务器受到广大用户青睐。本文主要介绍如何在阿里云服务器上便捷地查看与管理代码,如使用SSH连接服务器并通过命令行工具打开文件,以及利用Git进行版本控制和协作开发,提高代码管理效率。无论个人开发者还是企业团队,都能借助阿里云服务器高效地部署与管理应用程序,提升工作效率及产品质量。
41 10
|
15天前
|
人工智能 运维 Cloud Native
专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来
AI智算时代,服务器操作系统面临的挑战与机遇有哪些?
|
17天前
|
弹性计算 开发框架 数据可视化
阿里云虚拟主机和云服务器有什么区别?多角度全解析对比
阿里云虚拟主机与云服务器ECS的主要区别在于权限与灵活性。虚拟主机简化了网站搭建流程,预装常用环境,适合初级用户快速建站;而云服务器提供全面控制权,支持多样化的应用场景,如APP后端、大数据处理等,更适合具备技术能力的用户。尽管虚拟主机在价格上通常更优惠,但随着云服务器价格的下降,其性价比已超越虚拟主机,成为更具吸引力的选择。