V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
BD7JHH
V2EX  ›  云计算

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

  •  1
     
  •   BD7JHH · 9 天前 · 1644 次点击
    场景描述:
    源站开启了 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 架构是已上线功能,用户为什么不能自己切换?而要阿里云工程师进行后台切换?严重怀疑这就是内测,找小白做内测。

    结论:阿里云从不解决自身问题,一直忽悠。。。
    15 条回复    2024-06-17 15:03:55 +08:00
    wy315700
        1
    wy315700  
       9 天前 via Android
    可能是因为你不带域名的请求返回来 503 导致阿里云认为你源站当机了
    试试看返回个 200 看看
    BD7JHH
        2
    BD7JHH  
    OP
       9 天前
    @wy315700 但阿里云的 DCDN 源站健康检查(源站运行情况)是绿色的“健康”。
    也就是阿里云自己给出的源站健康报告没有问题。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    同时目前的工单继续处理中,说是已经提升级别了。看后续吧~~
    wushenlun
        11
    wushenlun  
       9 天前 via Android
    没勾 sni 吧,或者回源 host 被改了?
    dorothyREN
        12
    dorothyREN  
       9 天前
    不介意的话可以考虑用 http 回源
    BD7JHH
        13
    BD7JHH  
    OP
       8 天前
    @wushenlun 回源 HOST 也有 回源 SNI 也填写了
    BD7JHH
        14
    BD7JHH  
    OP
       8 天前
    @dorothyREN 这个回源 http 确实不会产生这个问题,之前其他域名的配置就是回源 HTTP 。只不过现在考虑的还是回源 HTTPS
    BD7JHH
        15
    BD7JHH  
    OP
       8 天前
    目前状态:
    开启 2.0 架构的,目测真的不会产生高频健康检查访问
    但同时好像非 2.0 架构的情况下,如果不添加备用回源 IP ,好像也不会产生高频访问。这个在持续观察中
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1155 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:55 · PVG 06:55 · LAX 15:55 · JFK 18:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.