
# CDN加速访问WAF防护资源
#### 应用场景
CDN是构建在现有互联网基础之上的一层智能虚拟网络，通过在网络各处部署节点服务器，实现将源站内容分发至所有CDN节点，使用户可以就近获得所需的内容，所以接入CDN的网站都能有比较快的响应速度。
Web应用防火墙（WAF：Web Application Firewall），通过对HTTP(S)请求进行检测，识别并阻断SQL注入、跨站脚本攻击、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC攻击、恶意爬虫扫描、跨站请求伪造等攻击，保护Web服务安全稳定。
如果您的网站对安全性能要求比较高，同时又有加速的需求，可以使用华为云CDN联动WAF配置，实现加速的同时防护Web攻击，全面提升网站防护能力。
![](https://support.huaweicloud.com/bestpractice-cdn/public_sys-resources/note_3.0-zh-cn.png)
- 本实践建立在用户已经[开通CDN服务](https://support.huaweicloud.com/drawer-cdn/cdn_drawer_01014.html)、准备好域名（www.example.com），且解析在华为云。
- 待加速的域名已在华为云完成[备案](https://beian.huaweicloud.com/)。
 
#### 方案概述
CDN+WAF可以对华为云、非华为云或云下的域名进行联动防护，同时提升网站的响应速度和网站防护能力，CDN+WAF联动的业务流向为：CDN\>WAF\>源站，流量由CDN转发到WAF，WAF再将流量转到源站，实现网站加速、流量检测和攻击拦截。
![](https://support.huaweicloud.com/bestpractice-cdn/zh-cn_image_0000001080755972.png "点击放大")
#### 方案优势
CDN和WAF同时部署，缩短用户查看内容的访问延迟，提高了用户访问网站的响应速度与网站的可用性，解决了网络带宽小、用户访问量大、网点分布不均等问题，同时可以防御Web应用攻击（SQL注入、跨站脚本攻击、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC攻击、恶意爬虫扫描、跨站请求伪造等），确保业务持续可靠运行。
#### 资源与成本规划
实践所需资源请见下表。
| 资源       | 资源说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 每月费用                                                                             |
|:---|:---|:---|
| CDN      | - 计费模式：按需计费  - 支持使用资源包                                                                                                                                                                                                                                                                                                                                                                                                           | 具体的计费方式及标准请参考[计费说明](https://support.huaweicloud.com/price-cdn/cdn_01_0155.html)。 |
| Web应用防火墙 | 云模式-标准版： - 计费模式：包年/包月  - 域名数量：10个防护域名  - QPS配额：2,000QPS业务请求  - 支持带宽峰值： - 源站服务器部署在华为云内：100Mbps  - 源站服务器部署在华为云外：30Mbps     | 具体的计费方式及标准请参考[计费说明](https://support.huaweicloud.com/price-waf/waf_03_0001.html)。 |
   
#### 实施步骤
1. **购买WAF云模式标准版**
   1. 登录[华为云控制台](https://console.huaweicloud.com)。
   
   2. 在控制台页面中选择"安全与合规 \> Web应用防火墙 WAF"，进入Web应用防火墙控制台。
   
   3. 在总览页面，单击"购买WAF实例"，进入购买页面，"WAF模式"选择"云模式"。
      - "区域"：根据防护业务的所在区域就近选择购买的WAF区域。
      
      - "计费模式"：包年/包月。
      
      - "版本规格"：选择"标准版"。
      
      - "高阶功能"、"扩展包"及"购买时长"：根据具体情况进行选择。
       
   
   4. 确认参数配置无误后，在页面右下角单击"立即购买"。
   
   5. 确认订单详情无误后，阅读并勾选《Web应用防火墙免责声明》，单击"去支付"，完成购买操作。
   
   6. 进入"付款"页面，选择付款方式进行付款。
    
2. **将网站信息添加到WAF**
   1. 在左侧导航树中，选择"网站设置"，进入网站设置列表。
   
   2. 在网站列表的左上角，单击"添加防护网站"。
   
   3. 选择"云模式-CNAME接入"并单击"开始配置"。
      - 云模式-ELB接入方式请参见[将网站接入WAF防护（云模式-ELB接入）](https://support.huaweicloud.com/usermanual-waf/waf_01_0287.html)。
       
   
   4. 根据界面提示，配置网站信息，如[表1]取值样例列所示，表中未给出的配置请根据实际情况选择配置。
       表1重点参数说明 
      | 参数    | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 取值样例                                                                                                                                                                                                                                                                                                  |
      |:---|:---|:---|
      | 防护域名  | 需要添加到WAF中防护的域名。 - 域名已完成备案  - 支持单域名（例如，一级域名example.com，二级域名www.example.com等）和泛域名（例如，\*.example.com）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | www.example.com                                                                                                                                                                                                                                                                                       |
      | 防护端口  | 需要防护的域名对应的业务端口。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 标准端口                                                                                                                                                                                                                                                                                                  |
      | 服务器配置 | 网站服务器地址的配置。包括对外协议、源站协议、源站地址、源站端口和权重。 - 对外协议：客户端请求访问服务器的协议类型。包括"HTTP"、"HTTPS"两种协议类型。  - 源站协议：Web应用防火墙转发客户端请求的协议类型。包括"HTTP"、"HTTPS"两种协议类型。  - 源站地址：客户端访问的网站服务器的公网IP地址（一般对应该域名在DNS服务商处配置的A记录）或者域名（一般对应该域名在DNS服务商处配置的CNAME）。  - 源站端口：WAF转发客户端请求到服务器的业务端口。  - 权重：负载均衡算法将按权重将请求分配给源站。   | 对外协议：HTTP 源站协议：HTTP 源站地址：IPv4 XXX .XXX.1.1 源站端口：80 |
      | 代理情况  | 在WAF前使用了其他代理产品。 此处选择"七层代理"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 七层代理                                                                                                                                                                                                                                                                                                  |
         
      ![](https://support.huaweicloud.com/bestpractice-cdn/public_sys-resources/note_3.0-zh-cn.png)
      - CDN的加速域名仅支持默认端口，以非标端口的方式接入WAF的防护域名将无法接入CDN。
      
      - 如果您在WAF侧为防护域名配置了HTTPS证书，请同步在CDN侧完成证书配置，否则会导致域名无法访问。
        
   
   5. 单击"下一步"，根据界面提示，完成[放行回源IP](https://support.huaweicloud.com/usermanual-waf/waf_01_0002.html)、[本地验证](https://support.huaweicloud.com/usermanual-waf/waf_01_0002.html)的操作。
    

3. **复制WAF的CNAME：** 在域名基本信息页面，单击CNAME所在行的![](https://support.huaweicloud.com/bestpractice-cdn/zh-cn_image_0000001954105697.jpg)，复制"CNAME"。
4. **在CDN侧添加加速域名** （WAF的防护域名）
   1. 登录[CDN控制台](https://console.huaweicloud.com/cdn/?locale=zh-cn#/cdn/overview)。
   
   2. 在左侧导航栏选择"域名管理"，进入域名管理页面。
   
   3. 在域名管理界面，单击"添加域名"，配置域名参数。
      - **服务范围**：包含WAF的防护区域，例如WAF的"区域"为"华北-北京四"，"服务范围"可根据业务情况选择"中国大陆"或"全球"。
      
      - **加速域名**：www.example.com。
      
      - **业务类型**：网站加速。
      
      - **源站配置** ：
        - **回源方式**：HTTP。
        
        - **源站类型**：源站域名。
        
        - **源站地址**：WAF的CNAME域名。
        
        - **回源HOST**：默认为加速域名。
         
       
   
   4. 根据业务需求设置**突发带宽告警** 和**用量封顶** 功能，勾选**数据跨境合规承诺**。
   
   5. 单击"确定"完成域名的添加，CDN会为加速域名生成专属CNAME。
   
   
   ![](https://support.huaweicloud.com/bestpractice-cdn/public_sys-resources/note_3.0-zh-cn.png)
   - 如果您的WAF是独享模式，需要使用"源站IP"接入CDN，"源站"文本框中请输入[为弹性负载均衡绑定弹性公网IP](https://support.huaweicloud.com/usermanual-waf/waf_01_0250.html)。
     
5. （可选）添加加速域名后，为保证顺利切换不影响业务，建议先做测试再切换DNS解析，请参考[本地测试加速域名](https://support.huaweicloud.com/drawer-cdn/cdn_drawer_01018.html)。
6. **配置CNAME解析**
   1. 登录[华为云控制台](https://console.huaweicloud.com)，在控制台首页选择"网络 \> 云解析服务DNS"，进入云解析服务页面。
   
   2. 在左侧菜单栏中，选择"公网域名"，进入公网域名列表页面。
   
   3. 在待添加记录集的域名所在行，单击"域名"列的域名名称。配置以下信息：
      - "主机记录"：www。
      
      - "类型"：CNAME-将域名指向另外一个域名。
      
      - "别名"：选择"否"。
      
      - "线路类型"：全网默认。
      
      - "TTL(秒)"：一般建议设置为5分钟，TTL值越大，则DNS记录的同步和更新越慢。
      
      - "值"：步骤[4]产生的CNAME。
      
      - 其他的设置保持不变。
       
   
   4. 单击"确定"，完成CNAME解析配置。
    
7. **验证CNAME是否生效**
   打开Windows操作系统中的cmd程序，输入如下指令：
   ```
   nslookup -qt=cname 加速域名
   ```
   如果回显CNAME，则表示CNAME配置已经生效，如下图：
   ![](https://support.huaweicloud.com/bestpractice-cdn/zh-cn_image_0000001081287460.png "点击放大")
   
完成以上配置后，流量经过CDN转发到WAF，达到加速和Web攻击防护的目的。
