最近源站出网流量超出带宽的限定值,经常导致服务器丢包。最近有点频繁,甚至一小时丢好几次,如下图所示:
于是考虑接入 CDN ,腾讯云CDN送了300G流量,但是接入后经常打不开页面,就换了百度云CDN。
期间也遇到了不少问题,踩了一些坑,下面就整理一下:
接入 CDN 后网站出现403错误:
403错误一般是因为节点还没有同步,等一会就好了。
也可能和缓存设置有关,缓存配置我把全部目录缓存规则删掉了,只设置了图片和一些静态资源的缓存,后台管理目录和 .php 动态文件设置为不缓存,也就是0天。具体如下,可根据自己的情况进行设置,注意动态文件尽量不要缓存。
网站出现504错误:
一般报504错误,是因为超时,有可能是因为设置了防盗链功能,根据客服的说法,如果设置了防盗链,需要把百度的域名也加入白名单,否则可能出现504错误。
手机版可能报如下错误:
按照这个说法其他搜索引擎甚至网站跳转都有可能504,所以建议直接关掉,如下图所示,把白名单清空保存即可。
再就是服务器安装了防火墙,比如我的是用的云锁,有一个自定义CDN功能,跟CDN厂商索要节点IP导入,可以避免CDN节点被防火墙拦截,出现504错误。
另外,防火墙的防CC功能也可能会误伤CDN,因为有人说CDN的回源特别类似于CC,所以如果CDN本身带有CC功能,请把防火墙的防CC功能关闭。
其实最根本的原因还是源站服务器带宽不够,升级带宽后问题得到缓解。CDN节点上有缓存的时候是可以抵消一部分流量,但是如果节点上没有缓存,还是需要去源站请求资源的。
所以CDN也只能起到一个辅助和安全的作用,超时问题是因为源站带宽超限,CDN请求不到数据就会返回504,哎,最有效的解决办法果然还是充钱。