CloudFront或其它CDN出现“502 ERROR”错误排查解决方法

一、事件起因

我的网站使用AWS CloudFront CDN来进行加速,但是当我开启宝塔面板源站的HTTPS后,使用CDN的页面会突然502错误“502 ERROR The request could not be satisfied.”,并且访问源站一切正常,CloudFront的源设置也正确。

二、系统环境

系统-Red Hat Enterprise Server 7.9 (Maipo) aarch64(Py3.7.8)

使用宝塔7.9.7搭建,NGINX1.22、PHP7.4

三、问题描述

访问CDN加速后的网站出现“502 ERROR The request could not be satisfied.”错误,并且在宝塔的网站日志内看不到访问记录,推测是CDN和源站通讯出现错误。

四、排查过程

1.官方提供的排查过程

当出现502错误,我第一时间搜索到了官方的教程,但是我的问题依旧没有解决,所以有了我个人的排查过程,如果大家在本过程就解决了问题,就可以不用向下看了。

引用“解决 CloudFront 中的 502 错误 (amazon.com)

2.我的排查过程

大家可能看到了官方为我们提供的排查过程,但是可能会有些没看懂或者解决不了问题,所以我为大家提供排查过程,这里我使用了HTTPS,所以根据HTTPS访问出现502撰写的排查过程。

①检查端口是否通畅

大家应该先检查源站端口是否通畅,可以手动带端口访问源站地址,例“yuan.abc.com:80”或“yuan.abc.com:443”,如本地都进不去,那就应该检测端口是否被防火墙拦截、被墙或网站服务出现错误。

②如端口无误,则检查CDN IP是否被拦截

当使用CDN后,CDN会访问源站进行数据的读取,应把CDN的IP段放入白名单,检查是否被防火墙拦截,这里为大家提供CloudFront IP段的信息https://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips

③检查源站是否绑定加速域名

当我们使用CDN时,大家可能在源站处忽略了添加加速域名,导致源站只绑定了源域名,大家应同时绑定加速后的域名。

④检查源站SSL证书域名!

当我们源站开启HTTPS时,大家可能会忽略一个问题,有时大家会在开启源站HTTPS时,源站SSL证书只申请了源站的域名,没有包含加速域名的证书,有些CDN访问源站时会检测源站证书是否含有加速域名,这样就会导致访问出现502问题,我出现的问题就是在这里

⑤检查CloudFront是否设置备用域名(经常容易忽略)

五、问题总结

有时就是一些小的细节问题,就会导致很多错误,大家一定要注意细节,经过了一系列的排查,大家应该已经解决了问题,如果还未解决,大家可以清理一下浏览器缓存,可能是缓存干扰了你的判断,实在没有办法就只能更换CDN了。


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注