Files
waf-platform/EdgeUser/web/docs/cdn/qa.md
2026-02-04 20:27:13 +08:00

80 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 网站常见问题
## 502 Bad Gateway 是怎么回事?
出现 `502 Bad Gateway` 通常说明源站无法连接,可以在访问日志里查看详情(如果开启了访问日志的话)。此时,请检查:
1. 你有没有在源站中设置源站;
2. 你是否在源站设置中设置了源站的专属域名,导致用户访问专属域名以外的域名时无法匹配到源站;
3. 你填写的源站的协议、域名、端口等信息是否正确;
4. 检查源站是否返回了`502`
5. 通过 `curl` 或者 `wget` 等工具在边缘节点上直接访问源站URL检查在边缘节点上是否能正常访问源站
6. 如果源站设置有防火墙或者限流设置,请关闭或者设置边缘节点为白名单。
## 504 Gateway Timeout 是怎么回事?
出现 `504 Gateway Timeout` 通常说明源站连接超时,可以在访问日志里查看详情(如果开启了访问日志的话)。此时,请检查:
1. 检查源站的协议、域名、端口是否正确;
2. 源站是否返回了`504`
3. 通过 `curl` 或者 `wget` 等工具在边缘节点上直接访问源站URL检查在边缘节点上是否能正常访问源站
4. 如果源站设置有防火墙或者限流设置,请关闭或者设置边缘节点为白名单。
在访问日志详情(访问日志后面图标点开)中"综合信息"页面会给出具体的错误,通常是:
* `dial tcp: xxx.xxx.xxx.xxx .. i/o timeout` - 指的是节点通过TCP连接源站超时通常是节点和源站的网络连接状况不佳也有可能是源站设置了一些限流、限速措施导致边缘节点无法正常连接源站
* `dial tcp: lookup example.com on xxx.xxx.xxx.xxx` - 指的是节点通过TCP连接域名解析服务超时请检查节点设置的域名解析服务服务器地址是否正确、是否可以正常连接`Linux` 上通常可以查看 `/etc/resolv.conf`
* `dial udp: lookup example.com on xxx.xxx.xxx.xxx` - 指的是节点通过UDP连接域名解析服务超时请检查节点设置的域名解析服务服务器地址是否正确、是否可以正常连接`Linux` 上通常可以查看 `/etc/resolv.conf`
* `tls handshake timeout` - TLS握手超时
## 使用CDN后报头无法读取
有些自定义的报头经过CDN之后源站无法读取可能的原因是GoEdge会自动将用户自定义的报头名称换为标准的报头比如用户的请求中含有
~~~
auth-key: MTIzNDU2
X-WWW-Echo: Helo
~~~
那么经过CDN之后源站接收到的报头会变成
~~~
Auth-Key: MTIzNDU2
X-Www-Echo: Helo
~~~
在HTTP/2中在浏览器端查看的报头可能全部是小写的但是实际在传输中报头都是首字母大写的。
知道原因后,我们就有了解决方案:
* 方法1修改源站的程序从原先不标准的报头名称改为标准的报头名称比如从 `auth-key` 改为 `Auth-Key`
* 方法2在网站设置"HTTP报头" -- "请求报头"中自定义一个新的非标准报头,比如名称为`auth-key`,值为`${header.Auth-Key}`,这样可以强行添加一个非标准报头在请求中,源站接收到的就是非标准的`auth-key`
## 使用CDN后浏览器无限重定向
如果使用CDN后浏览器端显示`Too Many Redirects`等无限重定向的现象,那么常见的可能原因有如下几个:
1. 可能原因1源站中设置的源站域名和CDN域名一致如果源站的域名和用户访问CDN的域名是一样的那么CDN将无法正常读取源站请务必检查源站设置防止源站中域名配置和CDN冲突
2. 可能原因2源站地址是HTTP但是在源站设置了自动跳转到HTTPS所以导致源站一直在HTTP-HTTPS之间不断跳转这种情况下有以下几个解决方法
1. 取消源站的自动跳转设置(或者根据当前访问域名来判断是否跳转,而不是全部强制跳转);
2. 源站地址改为HTTPS的防止源站自动跳转。
## 出现 ERR_SSL_PROTOCOL_ERROR 错误是怎么回事?
如果你在浏览器上打开网站出现类似于以下的错误:
~~~
此网站无法提供安全连接
xxx.com 发送的响应无效。
ERR_SSL_PROTOCOL_ERROR
~~~
通常原因:
1. 可能开启了网站443端口但是没有上传SSL证书导致你可以上传证书或者关闭`443`端口来解决此问题;
2. 你没有在对应的网站里绑定当前访问的域名;
3. 可能错误地在HTTP里将端口设置为443请改为在HTTPS里设置这个端口。
## 开启HTTPS后浏览器提示 ERR_SSL_VERSION_OR_CIPHER_MISMATCH
通常的几个原因:
* 没有上传对应域名的SSL证书导致请上传证书后再试
* 绑定的域名没有填写正确,请在"域名"设置里查看域名是否填写正确、是否有同一个域名绑定多个服务的情形。
## 已经上传了证书但是浏览器提示不安全
如果已经在管理系统绑定了域名,且已经上传此域名对应的证书,在浏览器上访问时仍然提示"不安全"类似字样,可能的几个原因:
1. 你访问的是HTTP网址而不是HTTPS网址比如 `http://你的域名`此时请换成HTTPS访问直接输入 `https://你的域名` 来验证你的HTTPS设置是否成功如果使用HTTPS访问成功你只需要在网站设置里设置让HTTP自动跳转到HTTPS即可
2. 你访问的域名没有在"域名"设置里加入;
3. 你访问的域名证书不正确。
## 源站提示无法找到域名
如果源站提示 `Invalid Hostname` 之类的错误,或者提示找不到对应的网站,或者显示的是别的域名对应网站的内容,原因是你没有设置正确的回源主机名。默认情况下,回源主机名和终端用户访问的域名一致,但如果你的源站不支持用户直接访问的域名的话,可以在"源站" -- "更多设置"中统一修改回源主机名,修改为源站域名;如果你每个源站域名不一样的话,可以点开修改每个源站,然后设置对应的回源主机名;如果源站使用的是特殊的端口,那么你设置的回源主机名中可能也需要添加对应的端口(比如 `example.com:9200`)。
## 499是什么错误
客户端在发送请求过程中取消请求的时候会记录一个499通常可以忽略。
## 如何禁止用户通过节点IP访问网站
可以在对应集群设置 -- "网站设置"中开启"禁止未绑定域名访问",并取消"允许使用节点IP访问"选项勾选,然后保存。