阿里云 DCDN 全站加速,会不断的做高频健康检查,以无法察觉的方式,吃掉源站流量(特别是按流量计算的)

157 天前
 BD7JHH
场景描述:
源站开启了 2 个站点,其中 1 个是带域名的,另 1 个是默认站点

其中不带域名的访问(默认站点),直接返回 503 ,同时 SSL 握手阶段使用的是 empty 空值。
NGINX 默认站点配置如下:
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
return 503;
set $empty "";
ssl_certificate data:$empty;
ssl_certificate_key data:$empty;
}

DCDN 配置了源站回源端口为 443 的时候,DCDN 的健康检查就会不断的发送不带域名的 "https://源站 ip" 请求,而且是高频的,1 天可以有几十万次的请求。

注意:即使配置了回源 SNI ,以及回源域名,同样会做这种检查。

阿里云工单对于这个问题的回复,其中有 1 条是说健康检查最多也就是 90s 一次,但实际上并不是如此

同时阿里云售后给出的所谓解决方案是:
后端建议是可以关闭静态资源 开启 2.0 架构看下(开启 2.0 架构会有短暂的业务不可用,需要您这边确认什么时候可以开启)

然而我再继续对这个解决方案提出问题:
1 、关闭静态资源是什么意思?从哪里关闭?有什么影响?
2 、2.0 架构是什么东西?从业务说明文档中并没看到?是否属于内测平台?

阿里云的回复原文如下:
1 、DCDN 主要实现动态和静态资源结合的加速产品,关闭静态资源意思是让资源都通过动态加速;
2 、2.0 是新架构,功能项比现在的 1.0 多哈

阿里云进一步回复:
1 、是的哈,静态关闭后,就是访问的时候不走静态了,是走的动态节点回源;
2 、2.0 架构没有具体的介绍页面哈,这个不是内测的,已经是上线的功能哈


这下问题就来了,产品的后端健康检查产生高频请求,阿里云的解决方案居然是让关掉静态资源缓存,所有请求都回源。
如果真的调到这样,DCDN 就纯粹的是 1 个不缓存的 PROXY ,吃掉 2 次流量( DCDN 吃 1 次,源站再吃 1 次)。

MD 这还要 DCDN 做什么?送钱吗?
同时说“2.0 是新架构,功能项比现在的 1.0 多哈 ”,单纯这样的解释,就好像骗路边啊婆啊伯买新产品一样。

如果 2.0 架构是已上线功能,用户为什么不能自己切换?而要阿里云工程师进行后台切换?严重怀疑这就是内测,找小白做内测。

结论:阿里云从不解决自身问题,一直忽悠。。。
2255 次点击
所在节点    云计算
15 条回复
wy315700
157 天前
可能是因为你不带域名的请求返回来 503 导致阿里云认为你源站当机了
试试看返回个 200 看看
BD7JHH
157 天前
@wy315700 但阿里云的 DCDN 源站健康检查(源站运行情况)是绿色的“健康”。
也就是阿里云自己给出的源站健康报告没有问题。

同时这个健康检查请求,只是在 SSL 握手阶段就产生错误,并关闭连接了。并没有到状态码的环节。

就是 SSL 握手,证书不对,就关闭了连接。

问题不在于证书对不对,而是健康检查为什么不带回源域名进行访问?而去直接访问 IP 。
wy315700
157 天前
@BD7JHH
会不会因为你填源站的时候填了 IP

一般 CDN 很少有用 SSL 回源的 除非 TCP 直接透传

因为太影响速度,CDN 起不到加速作用了
BD7JHH
157 天前
@wy315700 源站是填 IP ,端口选 443 ,已设置回源域名,已设置回源 SNI 域名。
如果源站不填 IP ,填源站域名,那不就是死循环了?加速域名和源站域名是同 1 个域名,然而加速域名配了 CNAME ,如果源站也配成相同域名,不就死循环了?

源站走 SSL 目前感觉不到速度影响,CDN 加速主要是对静态资源进行缓存(所以源站是 SSL 并不会影响内容缓存加速)

源站走 SSL 的目的是在源站和 DCDN 节点间的通讯也加密

按用户端的理解,既然是健康检查,为什么不走带域名的健康检查,而直接请求和加速域名不相关的请求?
yinmin
157 天前
return 503 改成 return 404
yinmin
157 天前
另外,证书 empty 改成真实证书,然后看看问题是否改善。
Shiroka
157 天前
源站健康检查:实行主动四层健康检查机制,探测源站的 80 、443 或自定义端口。每 2.5 秒检查一次,连续 3 次失败标记为不可用。

https://www.alibabacloud.com/help/zh/dcdn/user-guide/configure-an-origin-server

尝试源站设置成只有一个主,不要添加其他的主和备
BD7JHH
157 天前
@yinmin 如果配置为真实证书,这好像违反了默认站点禁止访问的原则。
我曾经试过使用自签证书作为默认站点的证书,这时候报错信息没有了,但如果打开 debug 级别的,还是看到高频访问。

如果使用 empty ,改成 404 甚至 200 都没用,因为是在 SSL 握手阶段就报错,然后就断开了。
如果使用自签证书,证书无效也会断开的。

基本的问题不在于状态码,而在 SSL 握手阶段,而再进一步说,健康检查高频请求不带业务域名,这是后端健康检查的业务逻辑有问题。

客户配置了所有可以配置的回源域名,回源 SNI ,那健康检查应该遵循业务配置进行健康检查。而不是自己萌生出 1 个非正常请求。
BD7JHH
157 天前
@Shiroka 不是 2.5 秒,我遇到的是 1 秒好多次,而且是多个节点都同时做高频请求。3 小时,10W 次的健康检查。

单主 和 主备,都一样
BD7JHH
157 天前
目前更新:
阿里云售后打电话给我了,说让我新开 1 个域名,然后单独的把新的域名打开 2.0 架构,看看是否存在问题。

同时目前的工单继续处理中,说是已经提升级别了。看后续吧~~
wushenlun
157 天前
没勾 sni 吧,或者回源 host 被改了?
dorothyREN
156 天前
不介意的话可以考虑用 http 回源
BD7JHH
156 天前
@wushenlun 回源 HOST 也有 回源 SNI 也填写了
BD7JHH
156 天前
@dorothyREN 这个回源 http 确实不会产生这个问题,之前其他域名的配置就是回源 HTTP 。只不过现在考虑的还是回源 HTTPS
BD7JHH
156 天前
目前状态:
开启 2.0 架构的,目测真的不会产生高频健康检查访问
但同时好像非 2.0 架构的情况下,如果不添加备用回源 IP ,好像也不会产生高频访问。这个在持续观察中

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1049896

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX