Web应用防火墙(Web Application Firewall,简称WAF)可以与CDN(如网宿、加速乐、七牛、又拍、阿里云CDN等)结合使用,为开启内容加速的域名提供Web攻击防御。本文介绍如何同时部署WAF和CDN。

背景信息

您可以参照以下架构为源站同时部署WAF和CDN:CDN(入口层,内容加速)> WAF(中间层,实现应用层防护)> 源站。

使用阿里云CDN

  1. 将要防护的域名(即加速域名)接入CDN。具体操作,请参见CDN快速入门
  2. 在WAF中创建网站配置。
    • 域名:填写要防护的域名。
    • 服务器地址:填写SLB公网IP、ECS公网IP,或云外机房服务器的IP。
    • WAF前是否有七层代理(高防/CDN等):勾选

    具体操作,请参见网站配置

  3. 成功创建网站配置后,WAF为该域名生成一个专用的CNAME地址。
    说明 关于如何查看WAF生成的CNAME地址,请参见WAF接入指南
  4. 将CDN配置中的源站修改为WAF分配的CNAME地址。
    1. 登录阿里云CDN控制台
    2. 域名管理页面,选择要操作的域名,单击管理
    3. 源站信息区域,单击已有源站信息后面的编辑,修改已有源站配置。
      参数 说明
      源站信息

      选择源站的类型,并填写源站地址。

      • 地址长度:最长不超过67个字符。
      • 源站数量:每个加速域名的源站数量最多可以设置20个。
      • OSS域名
        • 资源已存储在阿里云OSS中,可直接输入阿里云OSS Bucket的外网域名作为源站(不支持OSS内网域名作为源站),例如:***.oss-cn-hangzhou.aliyundoc.com
        • 查看OSS外网域名:前往OSS控制台查看,或直接选择同账号下的OSS Bucket。
        说明 阿里云CDN回源阿里云OSS的流量优惠说明:
        • 用户需要在控制台上把源站类型设置为“OSS域名”,这样阿里云OSS产品会将来自阿里云CDN产品的回源流量识别为“CDN回源流出流量”,从而享受到更优惠的价格。
        • 如果用户在控制台上把源站类型误设为“源站域名”,阿里云OSS产品会将来自阿里云CDN产品的回源流量识别为“外网流出流量”,这种情况下就享受不到优惠价格。

        详细的费用说明请参见CDN加速OSS计费说明

      • IP:支持配置多个服务器外网IP作为源站地址,不支持内网IP,阿里云ECS的外网IP可免审核。
      • 源站域名:支持配置域名作为源站地址,可配置多个域名。
        说明
        • 源站域名不能与加速域名相同,否则会造成循环解析,无法回源。
        • 源站域名格式:
          • 域名长度为1~67个字符。
          • 支持:小写英文字母(a~z)、数字(0~9)和短划线(-),例如example.com。
          • 不支持:中文、英文大写字母(A~Z)和除了短划线(-)以外的其他符号,且短划线(-)不能连续出现、不能单独使用、不能出现在开头和结尾。如果域名包含中文(例如:阿里云.网址),请以中文形式进行相关备案,再通过第三方工具punnycode将中文域名转换成为英文域名(例如:xn--fiq****.xn--eq****)后填入。
        • 阿里云CDN当前不支持直接将阿里云ALB产品的实例地址(例如:example.hangzhou.alb.aliyuncs.com)添加为CDN的源站。但您可以通过ALB实例配置CNAME域名解析的方式,实现通过业务域名(例如:origin.example.com)解析到ALB实例地址,操作方法,请参见设置CNAME域名解析。然后再把业务域名设置为CDN加速域名的源站地址。
      • 函数计算域名:支持将您在同一账号下的函数计算产品上配置的函数计算域名,配置为源站地址。您需要选择函数计算区域域名。操作方法,请参见配置自定义域名
      优先级

      支持设置主备,主优先级大于备优先级。用户请求通过阿里云CDN回源时,会优先回源到优先级为主的源站地址。主源站出现故障的情况下,将会回源到备源站。源站优先级的取值范围为0~127,数值越小,优先级越高。主源站的优先级默认值为20,备源站的优先级默认值为30。如需配置其他值,请联系您的商务经理或架构师。

      例如,有A、B两个源站,A源站的优先级为主,B源站的优先级为备,则用户请求通过阿里云CDN回源时会优先回源到A源站,如果A源站出现故障,将会回源到B源站,当A源站恢复正常后会从B源站切换回A源站。

      权重
      当多个源站的优先级相同时,阿里云CDN会按照源站的权重分配用户请求回源到不同源站的比例,实现按权重的负载均衡。您可以根据业务需求,自行设置权限值。
      • 取值范围:1~100,数值越大,源站分配到的用户请求比例越高。
      • 默认值:10。

      示例:有A、B两个源站,两个源站的优先级都是主,A源站的权重为80,B源站的权重为20,则用户请求将会按照8:2的比例在A、B两个源站之间分配。

      端口
      即,CDN节点回到源站哪个端口请求资源。默认为80,根据您源站的支持情况,可自定义设置回源端口,允许设置的端口范围为1~65535。
      • 默认值:80。
      • 端口值为443时,以HTTPS协议回源;80或其他自定义端口,以HTTP协议回源。
      说明
      • 如果需要以HTTPS协议回源到其他自定义端口,请联系您的商务经理或架构师。
      • 如果配置了回源协议功能(默认为关闭状态),这里配置的端口会失效。关闭回源协议的方法,请参见配置回源协议
      • 当源站选择OSS域名时,回源端口是否支持自定义端口,取决于OSS产品。
    4. 前往回源配置页面,在配置页签下,确认回源HOST未开启。
      回源设置
    完成上述配置后,流量经过CDN,其中动态内容将继续通过WAF安全检测防护。