前言

在博文中 解读大型网站的演变过程  浅谈 举家搬迁静态文件到CDN 博文中都有涉及CDN,这次我们来详细讲解下CDN的架构

简介

CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求

好处

提升访问资源速度,为用户提供更好的用户体验,例如访问某个图片,原来如果从源站获取可能需要30s,但是使用cdn之后可能只需要 1 ~ 5 s,因为cdn是从离用户最近的服务器获取图片资源的

适用对象

静态资源,例如js,css,图片资源,视频,音乐资源,软件资源等等

CDN架构

实例:某个用户访问图片资源(例如cdn.pic1.54php.cn/test.jpg)

  1. 浏览器通过dns解析出 cdn.pic1.54php.cn   cname 到 CDN的服务器

  2. CDN服务器 内部通过存储引擎 查看文件是否在 CDN存储服务器上

  3. 如果在直接返回给用户图片

  4. 如果不在,CDN存储服务器启动 从原图站点 下载图片 然后存储起来在返回给用户图片

重点剖析

以下两点也是我们使用CDN厂商服务必须要配置的两项

  • cname操作:cdn.pic1.54php   cname  到  CDN厂商指定的一个域名(特指步骤一)

  • 配置源站地址:cdn服务器找不到图片会从源站网站下载资源 (特指步骤四)

所以每一个CDN资源项都需要配置2个域名,例如本人博客资源图片配置如下

cname操作:cdn.pic1.54php.cn  cname 7xo9jr.v1.com.z0.glb.qiniudns.com.
源站域名配置:pic1.54php.cn  A xxx.xxx.xxx.xxx (博客服务器ip)

大话CDN技术

前面主要说的是用户使用角度,我们再来一起学习下 要想提供CDN服务需要的技术积累

  • DNS 智能解析

  • 缓存技术 例如varnish,squid等等

  • 负载均衡技术 例如nginx

DNS智能解析

为什么需要智能解析?

就是为了保证不同地域的用户都可以从最近的服务器获取资源 达到提速的作用。

那么什么是智能解析?

例如 用户张三 是 上海的用户 ,李四是北京的用户,那么通过地域策略,张三获取图片资源就是从上海服务器获取,李四就是从北京服务器获取

缓存技术

追求更快,虽然从最近的服务器获取资源已经够快了,但是还可以通过缓存技术可以是之更快,我工作所接触过得就有varnish 和 squid 两种技术。关于squid 介绍可以查看 Squid 操作实践

负载均衡

顾名思义 就是用来分发任务的,如果我们的服务器是一组多台,那么就要通过负载均衡软件来均衡分发任务

总结

希望通过 使用者角度 和 服务商角度的讲解,大家对CDN有了一定的了解

原文地址:CDN服务技术架构图
标签:cdn   cname   速度优化   squid   varnish

智能推荐

CDN服务技术架构图的更多相关文章

  1. Hadoop 2.x 生态系统及技术架构图

    一.负责收集数据的工具:Sqoop(关系型数据导入Hadoop)Flume(日志数据导入Hadoop,支持数据源广泛)Kafka(支持数据源有限,但吞吐大) 二.负责存储数据的工具:HBaseMong ...

  2. rocketmq技术架构图

    NameServer.Broker.Producer.Consumer之间如何进行通信,如何工作: NameServer和Broker: NameServer主要做两件事情,第一就是管理Broker, ...

  3. 画了一张基于Spring Cloud的微服务系统架构图

  4. nGrinder技术架构图

  5. HKDAS产品技术架构图

  6. .Net Core with 微服务 - 架构图

    上一次我们简单介绍了什么是微服务(.NET Core with 微服务 - 什么是微服务 ).介绍了微服务的来龙去脉,一些基础性的概念.有大佬在评论区指出说这根本不是微服务.由于本人的能力有限,大概也 ...

  7. 直播技术:从性能参数到业务大数据,浅谈直播CDN服务监控

    线上服务的有效监控和数据收集,一直是后端服务离不开的话题.直播作为一种经典的分布式系统,监控以及数据收集更是必不可少的工作.如何对海量的服务集群有效的监控和保活,又如何抓取集群中的碎片数据中来优化服务 ...

  8. iphone开发 IOS 组织架构图

    转载自 :http://blog.csdn.net/mashi321323/article/details/18267719   登录|注册     mashi321323的专栏       目录视图 ...

  9. 【原】http缓存与cdn相关技术

    摘要:最近要做这个主题的组内分享,所以准备了一个星期,查了比较多的资料.准备的过程虽然很烦很耗时间,不过因为需要查很多的资料,因此整个过程下来,对这方面的知识影响更加深刻.来来来,接下来总结总结 一 ...

随机推荐

  1. linux——常用命令与脚本

    linux常用命令 --文件管理pwd --查看当前目录cd --切换当前目录ls --列出当前目录下的所有文件touch --创建文件mkdir --建立目录rmdir --删除空目录rm --删除 ...

  2. 【python】继承关系和isinstance

    来源:廖雪峰 继承关系是: object -> Animal -> Dog -> Husky 那么,isinstance()就可以告诉我们,一个对象是否是某种类型.先创建3种类型的对 ...

  3. spring加载多个配置文件

    首先我们都知道要使用spring,则需要在web.xml中增加如下代码: web.xml: 1:<listener><listener-class>org.springfram ...

  4. 如何破解mac版UltraEdit?

    Rodolfo教你如何破解UtralEdit? 第一步:去官网下载原载,先运行一次: 第二步:在终端里执行下面代码就可以破解完成!printf '\x31\xC0\xFF\xC0\xC3\x90' | ...

  5. 文本切割软件Replace Pioneer

    工作中遇到一些大文本,或者一些文件需要在特定的行切割开的.Replace Pioneer正好用于此的软件. 把一个文本切分不同文本的步骤: 1先把文本数据放到打开

  6. .NET NPOI导出Excel详解

    NPOI,顾名思义,就是POI的.NET版本.那POI又是什么呢?POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office的文件. 支持的文件格式包括xls, ...

  7. 【Java EE 学习 27】【oracle学习第一天】

    一.oracle 11g安装的注意事项 1.超级管理员密码设置要符合要求(特别是不能以数字打头),否则在创建数据库的时候会产生ora-00922错误以及ora-28000错误. 解决方法:http:/ ...

  8. c# 针对SAP服务通讯

    对于sap完全没有概念. 不知道是什么,也不想了解过多.还是像针对一个技能好好的研究一下. 年前的一个项目遇到c#调用SAP来实现一些业务逻辑对于我这个门外汉确实有点摸不着头闹.捋顺一下思路. . 结 ...

  9. nodejs review-04

    79 Secure your projects with HTTPS Express 生成SSL证书 openssl genrsa -out privkey.pem 1023 openssl req ...

  10. hdu 5677 ztr loves substring 多重背包

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission( ...