更新时间:2024-07-12 GMT+08:00

如何处理523错误码问题?

523错误码是由于同一个访问请求四次经过了WAF引起,为了避免出现死循环现象,WAF会拦截该请求。如果您在访问网站时出现了523错误码问题,请先梳理流量图,查出流量串接多个华为云WAF的原因。

可能导致523错误码的示例流量图如下:

原因一:将同一个网站接入WAF 4次以上

通过WAF的各种模式(云模式-CNAME接入、云模式-ELB接入、独享模式),将同一个网站接入WAF 4次以上。

解决办法:

梳理流量图,将用户流量绕过多余WAF,具体操作如下:

  1. 登录WAF管理控制台。
  2. 在左侧导航树中,选择“网站设置”,进入网站设置列表。
  3. 找到出现523问题的防护网站,保留一个配置,删除多余的防护网站,具体操作请参见删除防护网站

    防止删除网站后造成业务中断,在删除网站前,需要完成以下操作:

    云模式:请您先到DNS服务商处将域名重新解析,指向源站服务器IP地址,否则该域名的流量将无法切回服务器,影响正常访问。

    独享模式:修改ELB的后端服务器组,不再接入WAF实例节点,具体操作请参见更换后端服务器组

原因二:调用了第三方接口且第三方接口也使用了华为云WAF

将用户的请求在转发给第三方接口时仅修改了host,而header、cookie执行了原样转发,导致保留了WAF原有的计数器。

解决办法

修改反向代理请求中的header字段,具体操作如下:

用户的流量链路上,在WAF后如果有NGINX,才可用此方法。

  1. 通过使用“proxy_set_header”来重定义发往代理服务器的请求头,执行以下命令打开nginx配置文件。

    以Nginx安装在“/opt/nginx/”目录为例,具体情况需要依据实际目录调整。

    vi /opt/nginx/conf/nginx.conf

  2. 在nginx配置文件中加入proxy_set_header X-CloudWAF-Traffic-Tag 0;,示例如下:

    location  ^~/test/ {
        ......
        proxy_set_header Host       $proxy_host;
        proxy_set_header X-CloudWAF-Traffic-Tag 0;
        ......
        proxy_pass http://x.x.x.x;
    }

原因三:源站IP误配置为WAF的回源IP或WAF前代理的IP

如果“源站地址”误配置为WAF的回源IP或WAF前代理的IP,会造成访问死循环,报523错误。

解决办法

检测源站服务器的配置,将“源站地址”修改为正确的源站IP,具体操作请参见修改服务器配置信息

图1 修改源站地址