阿里云镜像回源异常解决指南(424报错)
前言
宝塔在商业化的道路越走越远,强制收集手机号,极慢的部署速度,缓慢的响应速度,陈旧的UI界面,层出不穷的BUG.....甚至宝塔官方自己的demo都被黑掉,我已经看不到宝塔的任何优点了。
所以我从宝塔换到了1panel,终于摆脱宝塔了 ::aru:despise::
在这个属于Docker的时代里,我用上了1panel面板,在使用这一面板时,我也遇到了诸多问题。比如,在我所有数据迁移后出现的,424无法访问资源问题
[scode type="blue" size=""]回源失败的原因有很多,此处只记录我遇到的原因[/scode]
问题描述
控制台报错424
镜像回源提示MirrorFailed,Error status : 502 from mirror host, should return 200 OK.
浏览器可以正常访问
解决过程
我首先去看了一下424报错的含义,基本上可以确定是源站的原因
[collapse status="false" title="424错误"]
Mirroring failed, please check your mirror configuration
问题原因:配置的回源地址无法访问、回源地址不存在请求的文件等。解决方案:请参见概述排查回源地址是否有效Read body from mirror host failed, please check your mirror host
问题原因:无法从镜像源站读取数据。解决方案:请检查是否能正常访问镜像回源地址中的文件。Bytes read is not equal to expected
问题原因:从镜像源站读取的数据缺失或无效。解决方案:请检查源站是否能向OSS正常发送数据。MD5 in header() is not equal to MD5 calculated
问题原因:回源文件的MD5值与Content-MD5值不匹配,OSS不保存回源文件。解决方案:请检查是否因源站服务和网络通讯异常,导致了回源文件的MD5值与Content-MD5值不匹配。The object you specified already exists and can not be overwritten
问题原因:文件已存在且不可被覆盖。解决方案:不支持覆盖同名文件。请通过GetBucket (ListObjects)检查已存在的文件。The object you specified is immutable
问题原因:Bucket处于被保护状态时,无法向该Bucket写入文件。解决方案:确保回源文件写入的Bucket未处于合规保留策略的保护状态。请通过GetBucketWorm获取Bucket的保护状态。Meta is too large
问题原因:用户自定义元数据超出限值。解决方案:一个Object可以有多个自定义元数据,但所有的自定义元数据总大小不能超过8 KB。Mirror request is rejected by QoS
问题原因:每秒请求数QPS(Query Per Second)超出限值。解决方案:对于镜像回源,中国各地域默认QPS为2000、流量为2 Gbit/s;海外各地域默认QPS为1000、流量为1 Gbit/s。如您的业务有更大的QPS需求,请联系技术支持。Error status : 0 from mirror host, should return 200 OK
问题原因:源站拒绝了回源请求。解决方案:关闭源站防火墙或宝塔的拦截策略。[/collapse]
再加上我把运维面板换成1penal之后就无法访问资源了,我的考虑方向基本上就指向源站了
可能的原因只有这个了Error status : 0 from mirror host, should return 200 OK,是源站的拦截策略设置有问题
我逐步关闭了1panel面板的所有防火墙,问题依旧出现
在看1panel的论坛时,发现了这样一个帖子记录阿里云CDN加速报502错误问题,我的解决方法! - 1Panel - 社区论坛 - FIT2CLOUD 飞致云
也就是说我在给1panel面板加ssl证书后,源站现在有了多个域名,CDN节点被访问返回404后不知道与源站的哪个域名握手下载资源,导致了424错误抛出
[scode type="share" size="simple"]
源站IP绑定了多个域名,且回源协议为HTTPS时,需通过配置回源SNI指明所请求的具体域名,源站根据配置的SNI名称返回对应域名的SSL证书,以确保正常回源。
回源SNI的工作流程如下:
当CDN节点以HTTPS协议访问源站时,需要在SNI中指定访问的具体域名(如:example.com)。源站接收到请求后,根据SNI中记录的域名,返回对应域名的证书(即example.com的证书)。CDN节点收到证书,与服务器端建立安全连接。什么是SNI以及如何配置回源SNI\_CDN(CDN)-阿里云帮助中心 (aliyun.com)
[/scode]
在配置回源SNI后,问题成功解决
具体操作方法如下:
[scode type="share" size="simple"]1. 登录CDN控制台(阿里云)。
在左侧导航栏,单击域名管理。在域名管理页面,找到目标域名,单击操作列的管理。在指定域名的左侧导航栏,单击回源配置。在配置*页签下找到回源SNI,单击修改配置。在回源SNI对话框,打开回源SNI开关,输入您希望客户端从哪个域名获取资源(例如:example.com)。[/scode]
文章来源:
Author:朱茱
link:https://www.isajuna.com/archives/424/