
# 通过独享模式接入WAF后，出现502/400报错，如何处理？
#### 问题描述
网站通过独享模式接入WAF后，访问网站时出现**502 Bad Gateway** 或**400 Bad Request**错误。这通常意味着WAF独享引擎与源站服务器之间的通信存在问题，需要按照以下步骤逐项排查。
#### 排查思路
表1表1 排查思路 
| 序号 | 可能原因                                                   | 处理措施                       |
|:---|:---|:---|
| 1  | [原因一：独享引擎实例状态异常]   | 检查独享引擎实例运行状态和健康检查结果        |
| 2  | [原因二：回源IP被源站安全策略拦截] | 检查源站安全组、防火墙是否放行独享引擎回源IP    |
| 3  | [原因三：ELB监听器配置错误]   | 检查ELB监听器协议、端口与WAF防护端口的匹配关系 |
| 4  | [原因四：安全组规则未放行回源IP] | 在源站安全组中添加放行独享引擎回源IP的入方向规则  |
| 5  | [原因五：源站服务状态异常]      | 检查源站服务器服务是否正常运行、性能是否充足     |
   
 #### 原因一：独享引擎实例状态异常
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在左侧导航栏，选择"资产管理 \> WAF独享引擎"。
3. 查看目标独享引擎实例的"运行状态"列： 
   - 如果状态为"运行中"，说明独享引擎实例运行正常，请继续排查[原因二：回源IP被源站安全策略拦截]。
   
   - 如果状态为"异常"，说明独享引擎实例不可用，请执行以下操作：
     1. 查看独享引擎实例的CPU、内存使用率是否过高。
     
     2. 确认独享引擎版本是否为最新版本（2023年4月及之后）。
     
     3. 如仍无法解决，[请提交工单寻求帮助]。
      
   
   
   
   
 
 #### 原因二：回源IP被源站安全策略拦截
网站以独享模式接入WAF后，所有请求经独享引擎实例返回源站，源站看到的所有源IP都会变成独享引擎实例的回源IP（即独享引擎实例对应的子网IP）。源站服务器上的安全软件（如安全组、防火墙、CFW等）可能将回源IP误判为恶意IP并拦截。如果WAF回源IP被屏蔽，WAF的请求将无法得到源站的正常响应，可能导致网站打不开或打开极其缓慢。
您可以参考以下步骤，确认回源IP是否被源站安全策略拦截。
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在左侧导航栏，选择"资产管理 \> WAF独享引擎"。
3. 在"WAF独享引擎"页面，单击目标独享引擎"IP地址"列的IP，复制独享引擎对应的子网IP地址。
4. 检查源站服务器的以下安全策略是否放行了该回源IP： 
   - **ECS安全组** ：确认入方向规则中已放行独享引擎回源IP的全部端口。具体操作请参见[放行独享引擎回源IP](https://support.huaweicloud.com/usermanual-waf/waf_01_0250.html#section7)。
   
   - **云防火墙（CFW）**：如果源站使用了CFW，需在CFW上放行WAF回源IP。
   
   - **主机安全软件**：如HSS等，确认未将回源IP加入黑名单。
   
   
   
   

5. 使用Telnet测试连通性：**telnet 源站IP 业务端口** 。
   
   如果端口无法直接连通但网站业务仍可正常访问，说明安全组规则配置正确（直接访问被拦截，仅允许WAF回源）。
   
   
 
 #### 原因三：ELB监听器配置错误
1. 进入[弹性负载均衡列表页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/elb/list)。
2. 单击WAF独享引擎绑定的目标负载均衡器名称，进入详情页。
3. 在"监听器"页签，检查以下配置： 
   - **前端协议/端口**：确认与业务实际访问的协议和端口一致。
   
   - **后端服务器组**：确认WAF独享引擎实例已添加到后端服务器组，且"健康检查"结果为"正常"。
   
   - **后端协议/端口**：当后端服务器组的后端协议是HTTP或HTTPS时，确认该后端协议与组内的后端服务器端口与配置的WAF防护域名的访问协议和端口一致。
   
   - **分配策略类型** ：如果选择"加权轮询算法"，请确认已关闭**会话保持**。开启会话保持可能导致请求固定转发到某个引擎实例，当该实例故障时请求会出错。
   
   
   
   
4. 如果ELB健康检查异常，可先临时关闭健康检查进行测试，确认是否为健康检查配置问题。
 
 #### 原因四：安全组规则未放行回源IP
1. [登录ECS控制台](https://console.huaweicloud.com/ecm/?#/ecs/manager/vmList)。
2. 在ECS实例详情页面，选择"安全组"页签。
3. 检查入方向规则中是否已添加放行独享引擎回源IP的规则： 
   - **策略**：允许
   
   - **协议端口**：自定义TCP，端口填写为空或1-65535（放行全部端口）
   
   - **源地址**：逐一添加所有WAF独享引擎的子网IP地址
   
   
   
   
4. 如果未配置，请参照[放行独享引擎回源IP](https://support.huaweicloud.com/usermanual-waf/waf_01_0250.html#section7)完成配置。
 
 #### 原因五：源站服务状态异常
1. **检查源站服务是否正常运行** ：
   
   - 登录源站服务器，确认Web服务（如Nginx、Apache、Tomcat等）已启动且正常运行。
   
   - 检查源站服务监听端口与WAF配置的"源站端口"是否一致。
   
   
   
   
2. **检查源站服务器性能** ：
   
   - 查看CPU、内存、磁盘使用率是否过高。
   
   - 查看网络带宽是否充足。如果源站带宽不足，可能导致响应超时返回504。
   
   
   
   
3. **直接测试源站连通性** ：
   
   - 创建一台与独享WAF实例在同一VPC下的ECS，直接向源站发送请求： **curl -kv -H "Host: 添加到WAF的防护对象" http://源站IP:源站端口**
     
   
   - 如果返回码为200，说明源站服务正常，问题可能出在WAF或ELB配置上。
   
   - 如果返回码非200，说明源站服务本身存在问题，请排查源站Web服务配置。
   
   
   
   
4. **检查是否触发WAF熔断保护** ：
   
   - 当源站出现大量502/504错误或请求积压时，WAF会触发熔断保护，返回类似 {"status": "System is busy, please try again later."} 的响应。
   
   - 独享模式可在WAF控制台调整"熔断保护"中的"宕机保护"和"连接保护"配置值。
   
   
   
   
5. **检查HTTP/HTTPS协议配置是否匹配** ：
   
   - 如果"对外协议"与"源站协议"不一致，WAF会进行协议转换。例如对外协议为HTTPS、源站协议为HTTP时，WAF会先解密HTTPS请求再以HTTP转发到源站。
   
   - 如果源站配置了HTTP强制跳转HTTPS，而WAF只配置了HTTPS→HTTP的转发，会导致重定向死循环。请配置两条转发规则：HTTP→HTTP 和 HTTPS→HTTPS。
   
   
   
   
 
 #### 提交工单
如果上述方法均不能解决您的疑问，请[提交工单](https://support.huaweicloud.com/usermanual-ticket/zh-cn_topic_0127038618.html)寻求更多帮助。
