使用CDN后,后台/部分页面无法打开504错误原因分析

现象描述

在使用CDN后,发现网站后台或网站的部分页面无法正常打开。抛出504 Gateway Time-out或503 Service Unavailable错误。而这些页面不仅限于某种特定类型,如不仅限于php页面或html页面。有时还会出现同一个页面,在部分地区可以打开,但在其他地区却打不开的情况。

原因分析

如今CDN技术应该是比较成熟的,鲜见有严重的CDN问题出现。所以应该更多的检查网站一方的运行状态是否正常。一般原因都出在网站一方。针对原站一方的检查需要全面、透彻。域名的解析、服务器端的配置、网站端的响应都需要纳入检查范围。

解决方案

  1.  检查域名解析配置、检查CDN基本配置,这步不详细说了,因为太基本,但有时候越的东西却容易忽略掉,比如回源host。
  2.  检查服务器的运行状态,负载、内存、硬盘IO等,是否有异常。
  3.  检查源站的状态。建议在源站上绑定一个二级域名,通过二级域名直接指向原网站,而不通过CDN。检查此域名的浏览状态,这样做主要是检测网站是否能做出正确的响应,同时也能印证服务器的运作基本正常。
  4.  检查服务器防火墙的配置。这个步骤比较重要。因为使用了CDN以后,所有请求都是CDN发回源站的。那么在服务器端的防火墙,收到的全部是来自CDN的连接和请求信息。如果服务器防火墙把CDN的某些IP给拦截了,那自然会造成网站页面打开超时,从而返回504错误。想解决这个问题,首先要得到CDN回源的IP地址,然后将他们加入到防火墙的白名单中。

如:阿里云CDN的回源IP地址见:https://help.aliyun.com/knowledge_detail/40205.html。将其中的IP地址段,加入网站防火墙的白名单即可。这类防火墙包括iptables、firewalld,或者第三方的APF+BFD、CSF+LFD,或DirectAdmin中的BFM等。

点赞