前言

在博文中 解读大型网站的演变过程  浅谈 举家搬迁静态文件到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. go:interface{}、断言与类型转换

    interface{}可用于向函数传递任意类型的变量,但对于函数内部,该变量仍然为interface{}类型(空接口类型), 不清楚这点将可能导致错误.如以下代码: package main impo ...

  2. SQL Server 临时禁用和启用所有外键约束(高版本向低版本迁移数据)

    --获得禁用所有外键约束的语句 select 'ALTER TABLE [' + b.name + '] NOCHECK CONSTRAINT ' + a.name +';' as 禁用约束 from ...

  3. jquery.smint.js 页面菜单浮动之谷歌浏览器异常

    jquery.smint.js 做公司项目时,谷歌测试,页面向下拉,刷新后,导航栏菜单与顶部距离发生变动,并不在设置的relative元素top下固定像素 我的relative元素的高为80,然后在j ...

  4. Fiddler响应post的请求 request body里面填写什么?

    若是想传json格式的数据,请求头可以这样写:(应该先勾选 post,然后写上正确滴请求地址)User-Agent: Fiddler Host: localhost:1455 <span sty ...

  5. 【转载】CentOS服务器配置VPN详解

    转载来自: https://bbs.aliyun.com/read/162297.html http://www.wanghailin.cn/centos-7-vpn/ 操作系统:CentOS 6.3 ...

  6. Jetty使用教程(一)——开始使用Jetty

    一.Jetty简介 1.1 什么是Jetty Jetty是一个提供HHTP服务器.HTTP客户端和javax.servlet容器的开源项目.   这个入门教程分为五个部分: 第一部分部分重点介绍如何使 ...

  7. jquery 20161014

    jquery.fn.extend <!DOCTYPE html> <html> <head lang="en"> <meta charse ...

  8. Ubuntu菜鸟入门(二)—— apt认知,且完善语言安装包

    一  语言安装包安装 1  原因 虽然安装的中文版,但是由于安装包很小,所以汉化的不够完全,所以要安装后,再下载语言包进行安装 2  方法 二  apt--软件包管理器 1   软件源 (1) 介绍 ...

  9. 爱特梅尔ATMEL全系列芯片解密单片机破解

    爱特梅尔ATMEL全系列芯片解密单片机破解 ATMEL芯片介绍: ATMEL公司为全球性的业界领先企业,致力于设计和制造各类微控制器.电容式触摸解决方案.先进逻辑.混合信号.非易失性存储器和射频 (R ...

  10. 成功进行了一次UDP打洞

    本次测试参数:服务端是公网固定IP:两个客户端A和B分别位于不同电脑,不同宽带,不同型号路由后面(一个家庭路由,一个企业路由),且路由没有经过特别的设置.测试没有什么特别的地方,只是依照网络资料进行实 ...