
# 网站、应用接入WAF后，访问出现404/502/504报错处理方法
网站、应用接入WAF防护后，如果您访问网站应用、调用接口时出现404 Not Found、502 Bad Gateway，504 Gateway Timeout等错误，请参考以下方法解决。
#### 404 Not Found错误排查思路和处理建议
网站接入WAF后，访问网站时出现404 Not Found错误，请参考[图1]进行排查处理。
图1404错误排查思路   
![](https://support.huaweicloud.com/trouble-waf/zh-cn_image_0000001647509536.png "点击放大")
- 如果访问网站返回如[图2]所示页面，原因和处理建议说明如下：
  图2404页面   
  ![](https://support.huaweicloud.com/trouble-waf/zh-cn_image_0000001171486475.png "点击放大")
  
  **原因一** ：添加防护域名到WAF时，配置了非标准端口，例如配置了如[图3]所示的非标准端口业务，访问网站时未加端口用"https://www.example.com"或者"https://www.example.com:80"访问网站。
  图3非标准端口配置   
  ![](https://support.huaweicloud.com/trouble-waf/zh-cn_image_0000001942588037.png "点击放大")
  **处理建** **议**：在访问链接后加上非标准端口，再次访问源站，如"https://www.example.com:8080"。
  
  **原因二** ：添加防护域名到WAF时，没有配置非标准端口，访问时使用了非标准端口或者"源站端口"配置的非标准端口，例如配置了如[图4]所示的防护业务，用"http://www.example.com:8080"访问网站。
  图4未配置非标准端口   
  ![](https://support.huaweicloud.com/trouble-waf/zh-cn_image_0000001942589165.png "点击放大")
  ![](https://support.huaweicloud.com/trouble-waf/public_sys-resources/note_3.0-zh-cn.png)
  没有配置非标准端口的情况下，WAF默认防护80/443端口的业务。其他端口的业务不能正常访问，如果您需要防护其他非标准端口的业务，请重新进行域名配置。
  **处理建议**：直接访问网站域名，如"https://www.example.com"。
  **原因三：**域名解析错误。
  **处理建议：**
  - 如果该域名已添加到WAF进行防护，参照[域名解析](https://support.huaweicloud.com/usermanual-waf/waf_01_0002.html#section7)重新完成域名接入的操作，使流量经过WAF进行转发。
  
  - 如果该域名未添加到WAF进行防护，需要在DNS服务商处将域名解析到源站的IP。
   
  **原因四**：用户多个域名走同个WAF集群回源到同一个后端HTTPS源站+端口，由于WAF回源是长连接复用的，后端源站节点无法分辨是哪个域名（nginx通过Host和SNI分辨），会有一定几率出现A域名的请求转发到B域名的后端，所以会出现404。
  **处理建议**：修改域名在WAF的后端配置，不同的域名走不同的源站端口进行规避。
  
- 如果访问网站时，返回的不是[图2]所示的404页面，原因和处理建议说明如下：
  **原因**：网站页面不存在或已删除。
  **处理建议**：请排查网站问题。
  
 
#### 502 Bad Gateway错误排查思路和处理建议
完成WAF配置之后网站访问正常，但过一段时间，访问页面返回502，或者大概率出现502，请参考[图5]进行排查处理。
图5502错误排查思路   
![](https://support.huaweicloud.com/trouble-waf/zh-cn_image_0000001750477916.png "点击放大")
表1502错误问题处理 
| 可能原因                                                                           | 处理建议                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|
| 原因一：**网站使用了其他的安全防护软件（如360、安全狗、云锁或云盾等安全防护软件），这些软件把WAF的回源IP当成了恶意IP，拦截了WAF转发的请求** | 源站服务器配置放行WAF回源IP的访问控制策略。 - 云模式：请参见[如何放行云模式WAF的回源IP段？](https://support.huaweicloud.com/waf_faq/waf_01_0095.html)。  - 独享模式：请参见[放行独享引擎回源IP](https://support.huaweicloud.com/usermanual-waf/waf_01_0250.html#section5)。   |
| 原因二：**网站的后端配置了多个服务器，其中某个源站不通**                                                 | 请确保所有源站都可以正常访问。                                                                                                                                                                                                                                                                                                                                                                                                  |
| 原因三：**网站服务器性能问题**                                                              | 排查网站问题并联系您的网站管理员进行解决。                                                                                                                                                                                                                                                                                                                                                                                            |
| 原因四：**源站使用了CFW，CFW拦截了WAF的回源ip**                                                | 该问题有以下排查方法： - 如果源站使用了CFW，在CFW的控制台查看拦截日志，排查是否有相关的事件产生。  - 查看CFW的访问控制策略，排查是否配置了拦截WAF的回源IP   在CFW上将WAF的回源IP放行，具体操作请参见[配置访问控制策略](https://support.huaweicloud.com/usermanual-cfw/cfw_01_0030.html)                      |
   
当**网站的后端配置了多个服务器，其中某个源站不通**时，请参照以下操作步骤，检查网站的服务器是否配置正确。
![](https://support.huaweicloud.com/trouble-waf/public_sys-resources/notice_3.0-zh-cn.png)
修改服务器信息，大约需要2分钟同步生效。
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/trouble-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. 在页面左上方，单击![](https://support.huaweicloud.com/trouble-waf/zh-cn_image_0000002338752697.png "点击放大")图标，选择"安全与合规 \> Web应用防火墙 WAF"。
4. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
5. 在左侧导航栏，选择"资产管理 \> 防护对象"。
6. 在目标域名所在行中，单击目标域名，进入域名基本信息页面。
7. 在"源站服务器"栏中，单击编辑，进入"修改服务器信息"页面，确保对外协议、源站协议、源站地址、端口等信息配置正确。 
   图6服务器配置   
   ![](https://support.huaweicloud.com/trouble-waf/zh-cn_image_0000001171622607.png "点击放大")
   
   
8. 检测各个源站是否能正常访问。 
   - 在主机上执行以下命令进行检测。
     ```
     curl http://xx.xx.xx.xx:yy -kvv
     ```
     ![](https://support.huaweicloud.com/trouble-waf/public_sys-resources/note_3.0-zh-cn.png)
     - xx.xx.xx.xx代表源站服务器的源站IP地址，yy代表源站服务器的源站端口，xx.xx.xx.xx和yy必须是同一个服务器的源站地址和端口。
     
     - 执行curl命令的主机需要满足以下条件：
       - 网络通信正常。
       
       - 已安装curl命令。Windows操作系统的主机需要手动安装[curl](https://curl.se/)，其他操作系统自带curl。
        
      
     图7检测源站   
     ![](https://support.huaweicloud.com/trouble-waf/zh-cn_image_0000001124862900.png "点击放大")
     - 如果回显信息提示连接正常表示可以正常访问网站。
     
     - 如果回显信息提示"connection refused"表示源站不通，不能正常访问网站，请执行[步骤 9]。
      
   
   - 在浏览器中输入"http://*源站地址* :*源站端口* "进行检测。
     - 如果可以访问，表示网站访问正常。
     
     - 如果不能访问，表示源站不通，不能正常访问网站，请执行[步骤 9]。
      
   
   
   
   
9. 检测服务器是否运行正常。
   
   如果运行不正常，请尝试重启服务器。
   
   
 
#### 504 Gateway Timeout错误排查思路和处理建议
完成WAF域名接入配置之后，业务正常，但当业务量增加时，发生504错误的概率增加，直接访问源站IP也有一定概率出现504错误，请参考[图8]进行排查处理。
图8504错误排查思路   
![](https://support.huaweicloud.com/trouble-waf/zh-cn_image_0000001797440945.png "点击放大")
表2504错误问题处理 
| 可能原因                                                                                                                                                                                                                                                                                                    | 排查方法                                                                                                                                                                                                                                                                                                                                                                                                                          | 处理建议                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| 原因一：**后端服务器性能问题（连接数，CPU内存占用过大等）**                                                                                                                                                                                                                                                                       | 源站性能问题，可以排查源站访问日志以及访问流量情况，定性分析。                                                                                                                                                                                                                                                                                                                                                                                               | - 优化服务器的相关配置，包括TCP网络参数的优化配置，ulimit相关参数设置等。  - 如果是云模式部署方式，如果使用了ELB负载均衡，建议在ELB上增加后端服务器组或创建新的ELB，支撑大量增长的业务量。 - 增加后端服务器组的详细操作，请参见[添加后端云服务器（共享型）](https://support.huaweicloud.com/usermanual-elb/elb_ug_hd2_0003_01.html)。  - 配置新ELB的操作，请参考[步骤 1]\~[步骤 9]。    - 如果"对外协议"是HTTPS，建议在WAF设置HTTPS转发，回源走HTTP协议即"源站协议"设置为HTTP，降低后端服务器的计算压力。 如果有重定向问题，建议参照[如何解决重定向次数过多？](https://support.huaweicloud.com/trouble-waf/waf_01_0117.html)解决。 修改服务器信息的详细操作，请参见[修改服务器信息](https://support.huaweicloud.com/usermanual-waf/waf_01_0001.html)。   - 使用CC防护规则，拦截恶意流量。                                                                                                                     |
| 原因二： - **安全组未将WAF回源IP设置为白名单或未放开端口**  - **源站有防火墙设备，且该防火墙设备拦截了WAF的回源IP**                                      | 建议采用以下方法进行排查： - 排查客户源站是否有安全组，防火墙，服务器安全软件等。  - 在客户端与WAF上同时进行抓包分析，排查源站防火墙等设备对WAF的长连接是否有主动丢包的现象。                                                                                                                                        | - 源站服务器配置放行WAF回源IP的访问控制策略。 - 云模式：请参见[如何放行云模式WAF的回源IP段？](https://support.huaweicloud.com/waf_faq/waf_01_0095.html)。  - 独享模式：请参见[放行独享引擎回源IP](https://support.huaweicloud.com/usermanual-waf/waf_01_0250.html#section5)。    - 建议您关闭防火墙和服务器安全防护软件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 原因三：**连接超时、read超时** 说明： - 源站响应时间过长导致504（数据库查询时间过长，大文件上传时间过长，源站故障等）。  - WAF回源到客户源站超时时间大多为60秒或180秒，如果超时则会报错504。   | 该问题有以下排查方法： - 绕过WAF，直接访问客户源站，查看响应时长  - 查看全量日志里面访问日志源站响应时长  - 建议客户绕过WAF测试上传功能，并检查客户上传文件大小                                                                                       | - 数据库查询时间过长： - 调整优化业务，尽量缩短查询时长，优化用户体验。  - 修改请求的交互方式，让这种长连接在 60s 内能有一些数据交互（如，ack报文、心跳包、keep-alive等任何可以维持会话的报文）。    - 大文件上传时间过长： - 调整优化业务，尽量缩短文件上传时间。  - 建议使用FTP方式上传文件。  - 直接通过IP上传，或者使用没有被WAF防护的域名上传。  - 使用WAF的独享模式，独享WAF回源超时默认为120s。    - 源站故障类： 检查源站业务是否正常。   - 如果以上排查均不能解决该问题，您可以修改WAF到源站服务器的连接超时时间： WAF到源站服务器的连接超时时间包括"连接超时"、"读超时"、"写超时"的时间。    |
| 原因四：**源站带宽不足，访问流量过大，带宽超限制**                                                                                                                                                                                                                                                                             | 该问题有以下排查方法： - 如果客户配置的WAF后端为7层ELB，则可以在ELB上查504相关日志  - 如果客户配置的WAF后端为4层ELB，则可以在ELB上查"Traffic exceeded the bandwidth threshold"相关字段日志  - 如果客户配置的WAF后端为EIP，则在504高峰查看EIP流量监控。   | 扩展源站服务器带宽。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 原因五：**源站使用了CFW，CFW拦截了WAF的回源ip**                                                                                                                                                                                                                                                                         | 该问题有以下排查方法： - 如果源站使用了CFW，在CFW的控制台查看拦截日志，排查是否有相关的事件产生。  - 查看CFW的访问控制策略，排查是否配置了拦截WAF的回源IP                                                                                                                                               | 在CFW上将WAF的回源IP放行，具体操作请参见[配置访问控制策略](https://support.huaweicloud.com/usermanual-cfw/cfw_01_0030.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
创建新的ELB，参照以下方法将ELB的EIP作为服务器的IP地址，接入WAF。
![](https://support.huaweicloud.com/trouble-waf/public_sys-resources/notice_3.0-zh-cn.png)
修改服务器信息，大约需要2分钟同步生效。
1. [创建负载均衡器](https://support.huaweicloud.com/usermanual-elb/zh-cn_topic_0015479967.html)。
2. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
3. 在控制台左上角，单击![](https://support.huaweicloud.com/trouble-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
4. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
5. 在左侧导航栏，选择"资产管理 \> 防护对象"。
6. 在目标域名所在行的"域名"列中，单击目标域名，进入域名基本信息页面。
7. 在"源站服务器"栏中，单击编辑，进入"修改服务器信息"页面，单击"添加"，新增后端服务器。 
   图9服务器配置   
   ![](https://support.huaweicloud.com/trouble-waf/zh-cn_image_0000001125025068.png "点击放大")
   
   
8. 将"源站地址"设置为ELB的弹性公网IP地址。
9. 单击"确定"，服务器信息修改成功。
 
