iappi.cn出现403错误问题的解决

前期不知道设置了哪里,本来是使用主域名www.iappi.cn,同时也把iappi.cn通过301跳转到www.iappi.cn,避免出现多个域名的访问。一直比较正常,也确实可能不知道什么是不正常的,因为一直也是用www去访问的。昨天突然打开iappi.cn居然来了个403服务器拒绝的错误。这下子有点蒙了,有问题那就要解决吧。折腾了一阵子,也提交了工单咨询了百度云,终于使得问题得以解决,于是记录如下:

发现问题:直接在地址栏输入iappi.cn,可以跳转到https://iappi.cn,但依然是403错误。

图1.iappi.cn出现403错误

分析问题:既然可以跳转到https,说明CDN设置的301跳转是正常的,但因为服务器拒绝了iappi.cn这个域名的访问,要么是CDN的服务器设置权限出现问题,要么可能是源站服务器上对iappi.cn没有设置。但印象中,源站服务器的问题的话,应该会提示找不到域名,而不是直接来个403错误。当然是真正访问了源站后。

解决思路:首先判断下是CDN服务器的拒绝,还是源站服务器的拒绝。这个好办,修改本地的hosts文件,将iappi.cn指向服务器的IP地址即可。

图2.修改hosts文件指向服务器IP地址

修改完毕,在浏览器中打开iappi.cn,发现可以正常访问:

图3.浏览器输入iappi.cn后跳转到www.iappi.cn正常浏览

同时从开发者工具中也可以明显看到进行了301的跳转,说明源站上的设置是无误没有问题的。正常访问iappi.cn都会跳转到www.iappi.cn,实现同一个域名访问。

那么修改hosts文件正常的话,那有可能是DNS解析的问题,错误的解析了iappi.cn到一个服务器上去了,服务器不认识iappi.cn就返回403拒绝服务了。

图4.开发者工具中查看到进行了跳转到www.iappi.cn

检查下dns解析记录,在后台界面可以看到iappi.cn是通过CNAME方式将iappi.cn解析到www.iappi.cn上。理论上iappi.cn会跳转到www.iappi.cn一致的CDN加速服务器上。

图5.域名解析记录

但现在也有点陷入了迷潭,不知道究竟是哪里的问题,不过还好可以提交工单,于是在百度云后台提交工单咨询。

图6.百度云创建工单咨询(截图时工单已回复解决问题)

不得不说,百度云工程师的回复还是比较及时,也一步一步的往解决问题上行进中。
首先,工程师提议要求,把把解析设置到iappi.cn生成的CNAME域名iappi.cn.a.bdydns.com上,并修改修改iappi.cn的回源域名为:www.iappi.cn

图7.按工程师建议修改CDN设置中的回源配置(图借用了工程师的图)

按照此步设置后,iappi.cn可以正常访问了,但是但并没有实现打开iappi.cn就跳转到www.iappi.cn ,而是停留在了iappi.cn上,另外也会有3个文件出现:Provisional headers are shown的错误,缺了字体等元素,导致显示上有所欠缺。

图8.iappi.cn显示上的欠缺及3个文件报错

这时候工程师又建议您可以尝试修改CDN域名iappi.cn中源站地址为服务器IP地址,而回源Host修改为加速域名(iappi.cn),同时,源站设置iappi.cn跳转至www.iappi.cn,看看是否正常。

于是又按照工程师要求把CDN的设置更改过来,发现还是存在同样的问题。反馈后工程师要求检查是否源站代码中有没有设置iappi.cn到www.iappi.cn的重定向。直接回复是正常的,可以的后,工程师哥哥又检查了后说:

可能怀疑是由于缓存问题,没有直接请求到您源站的跳转请求,目前建议您刷新下根目录缓存,在看下效果

于是到CDN设置中的【刷新缓存】,通过URL刷新功能,将http://iappi.cn 、https://iappi.cn 的缓存进行了清除。

图9.进行清除CDN缓存操作

然后重新在浏览器中打开iappi.cn,发现问题得到了解决。

图10.正常浏览iappi.cn 301跳转到https
图11.https.iappi.cn 301跳转到https.www.iappi.cn

到此问题算是得以解决,然后回复了工单选择问题解决,并给工程师打了五星好评。

由上的问题解决过程,大概可以推测原来的原因是iappi.cn的CDN设置上的错误,导致并没有回源到www.iappi.cn,只是到了CDN加速服务器,被直接403拒绝。重新设置后,刷新CDN缓存得以解决。

PS:重新设置iappi.cn的DNS的解析,设置CNAME到www.iappi.cn依然可以正常访问的。这里也可以进一步的确定就是CDN加速的设置错误引起了这次403。