V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
如果你希望学习 CDN 相关知识,那么建议你可以遍历以下软件的说明文档。
NGINX
cURL
avenger
V2EX  ›  CDN

前端 CDN 服务器架构的一些疑惑

  •  1
     
  •   avenger · 2019-12-17 21:46:04 +08:00 · 2614 次点击
    这是一个创建于 1563 天前的主题,其中的信息可能已经有所发展或是发生改变。

    起因:

    网站流量有点顶不住,上周又被人恶意攻击了一天,这周花时间升级到了 弹性 IP + 负载均衡 + 后端 ECS 模式,保证 ECS 公网 IP 不会暴露。

    在网上找相关解决方案的过程中,看到一篇文章推荐这样的配置:

    CND (入口层)-> WAF (应用层防护)-> SLB (负载层)-> ECS (服务器源站) -> RDS (数据库)
    
    - 域名 cname CDN
    - CDN 指向 WAF
    - WAF 指向 SLB
    - SLB 负载 ECS
    

    有点困惑,先排除不是阿里云软文的情况下,老实说,有必要前面加这么多层吗?咱们底层是 php,本来效率就不高,前面再加这么多层,会不会性能都牺牲到网络层上了?

    大家公司的高负载网站架构是什么样的?能否分享一下?谢谢!

    4 条回复    2019-12-17 23:45:16 +08:00
    zwy100e72
        1
    zwy100e72  
       2019-12-17 22:03:49 +08:00   ❤️ 1
    CDN 缓存静态内容,还有能缓存的动态内容,也可以辅助隐藏真实的后端 IP
    LB 方便扩缩容,还能辅助做灰度
    网络开销本身就不应该是大头,加缓存就是为了降低后端负荷的

    如果对延迟没什么要求,CDN 能做到全球覆盖就够了,后端服务器集群可以用 2-3 组做容灾备份;
    否则就需要云服务器也全球部署、数据库之间相互同步,真正走向全球全分布式架构
    要是技术上无法达到全球分布,那就要靠分区等别的方式降低单区负荷
    mikeguan
        2
    mikeguan  
       2019-12-17 22:04:28 +08:00 via Android
    cdn waf slb 每个功能都不一样的,有钱就都上。用户访问你服务器还走了很长的路呢不在乎等电梯这一会儿
    czb
        3
    czb  
       2019-12-17 23:23:38 +08:00 via Android
    这个其实不会有太大影响 拿正常网络层的延时和 PHP 执行时间对比 再考虑上 CPU 和 IO 消耗 你会发现网络消耗其实不算什么 特别是在被攻击的环境下
    MiaRunis
        4
    MiaRunis  
       2019-12-17 23:45:16 +08:00   ❤️ 1
    这不是软文,这就是一个很标准(某种程度上来说已经过时了的)高可用网络服务构架。

    现在 CDN 和 WAF 通常直接由同一家提供(典型如 cloudflare ),对于安全性要求高的还会再加一层 ai 行为审查(典型如 visa/master 支付)。大陆这边 CDN 落后,很多判断行为并不能推到边缘节点直接处理,导致还得再加一层中心节点的 waf 判断。
    目前看这层 waf 点反倒是整个构架的弱点,将来阿里云肯定也会逐渐前置到 cdn 边缘节点来降低压力。

    对于规模足够大的动态站来说,正确实施多层缓存和流量阻挡,可以大大降低打到最后端 php 上的压力,反而加快用户访问速度。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5598 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 06:34 · PVG 14:34 · LAX 23:34 · JFK 02:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.