Initial commit (code only without large binaries)
This commit is contained in:
80
EdgeUser/web/docs/cdn/qa.md
Normal file
80
EdgeUser/web/docs/cdn/qa.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# 网站常见问题
|
||||
|
||||
## 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访问"选项勾选,然后保存。
|
||||
Reference in New Issue
Block a user