在同时接入高防IP、Web应用防火墙,和阿里云CDN时,最佳的部署架构如下:
高防IP(入口层,DDoS防护) -> CDN(静态资源加速) -> Web应用防火墙(中间层,应用层防护) -> 源站(ECS/SLB/VPC/IDC…)
注意:在上述架构缺省任何产品时,架构层级顺序不变。例如,
- 缺少WAF时的架构为:高防IP -> CDN -> ECS
- 缺少CDN时的架构为:高防IP -> WAF -> ECS
配置步骤
参照以下步骤,来同时接入高防IP、Web应用防火墙,和阿里云CDN。
- 配置Web应用防火墙,在 源站IP 中填写SLB公网IP、ECS公网IP或本地服务器IP,并在 是否已使用了高防、CDN、云加速等代理? 选项下选择 是。
- Web应用防火墙配置完成后,会生成一个CNAME。
- (如果未启用CDN,则跳过此步骤)将在CDN中配置的源站,改为Web应用防火墙提供的CNAME。
- 配置DDoS高防IP,在 源站域名 中填入CDN提供的CNAME,或者(未启用CDN,高防IP直接回源至WAF情况下)Web应用防火墙提供的CNAME。
- 在DNS解析处,修改DNS配置,将域名解析指向高防IP服务生成的CNAME。这样,流量会先经过高防IP,再转发至CDN或Web应用防火墙。
注意:经过CDN 和 WAF多层转发后,HTTP头部的X-Forwarded-For字段包含请求用户的真实IP,和所有经过的中间代理服务器的IP。其中,用户的真实IP处在第一个位置。例如,
X-Forwarded-For: 用户真实IP, 代理服务器1-IP, 代理服务器2-IP, 代理服务器3-IP, …
因此,要获取用户的真实IP,需要获取HTTP头部的X-Forwarded-For字段内容。具体方法,请参考 如何获取客户端真实IP。