• CDN网站加速技术


    什么是CDN?

    CDN(Content Delivery Network 内容分发网络)技术通过在各个地区部署缓存节点加速用户对静态资源的获取速度,提升用户体验,降低运营成本。CDN公司有网宿(ChinaNet)、蓝讯(ChinaCache)等

    CDN的基本架构和访问流程

    企业使用CDN的准备:
    1.静态资源有独立的域名
    2.删除授权DNS服务器A记录,添加CNAME记录
    3.在CDN后台进行域名绑定
     
    用户访问CDN的过程:
    1.用户查询本地DNS缓存,本地没有则请求LDNS查询,LDNS本地没有缓存则请求授权DNS解析;
    2.授权DNS返回CNAME记录;
    3.LDNS请求CDN公司的智能DNS系统解析CNAME别名;
    4.智能DNS返回A记录,LDNS返回IP给用户;
    5.用户根据IP请求静态资源,Cache节点本地有缓存则返回资源;
    6.若Cache节点本地无缓存则请求源站,源站返回资源后Cache节点再返回给用户。
    简单概括:用户通过两轮DNS查询获得IP,访问Cache节点获得资源。

    CDN实现的核心技术

    1.DNS视图技术:
    DNS视图技术,就是对同一个域名根据请求来源(LDNS)IP地址的不同返回不同的解析结果。
    #BIND视图技术(DNS View)
    #定义用户来源
    vim public.def
    
    acl "SD_CTC" {
    58.56.0.0/15;
    58.58.0.0/16;
    60.235.0.0/16;
    123.168.0.0/14;
    ...
    }
    
    #匹配IP来源,设置不同域名解析文件
    vim view.def 
    
    include "public.def";
    view "view_SD_CTC" {
    match-clients {
    SD_CTC;
    };
    zone "cache.com" IN {
    type master;
    file "zone/cache.zone";
    }
    }
    
    vim named.conf
    
    include view.def;
    
    2.CDN集群缓存和代理技术
    LVS负载均衡使用DR模式达到高并发高吞吐量,同时屏蔽后面的Nginx反向代理服务器;
    Nginx使用反向代理(Upstream)功能,采用url_hash方式分发流量,提高缓存的命中率同时节约缓存空间;
    Squid缓存服务器根据HTTP协议中有关缓存设置的规定,实现对页面和资源进行缓存以及对源站的代理。关于HTTP头部信息中的缓存规则,下次有机会再单独聊。
     
     
  • 相关阅读:
    控制C++的类只能在堆分配或只能在栈分配
    static 相关随笔
    虚拟继承
    虚函数和纯虚函数有以下所示方面的区别(转)
    构造函数 析构函数
    标准C++中有没有接口和纯抽象类的概念?(转)
    抽象类和接口(转)
    如何快速正确的安装 Ruby, Rails 运行环境
    NSRunLoop
    UIImagePickerController之死因 .
  • 原文地址:https://www.cnblogs.com/Peter2014/p/7551905.html
Copyright © 2020-2023  润新知