什么是cdn?
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
市场上小型CDN的原理是什么?
我将从用户访问到需要访问的网站来一一说明。
1,用户访问一个网站一般会通过域名,首先就是域名解析,域名会解析到一个cname记录,或者是多个ip记录,一般的cdn厂商会提供一个cname,这个cname会解析到节点的ip上,这样就可以实现就近访问原则,也就是说你访问一个网站,会给你提供一个最近的服务器让你访问,也就相当于是你想去一个连锁超市买一个商品,导航会给你提供一个最近的店,这个就是dns其中的一个作用,dns还会告诉你一共有多少家分店,那些分店开业了,哪些没开业。
2。通过dns解析到就近的服务器之后,用户的请求就会到服务器,那这个服务器会做哪些事呢?首先是反代,一般会通过openresty+nginx来实现,首先是动静分离,将不太变动的图片,视频这些静态资源做缓存,只有第一次访问的时候会去服务器读取,后面就会缓存到离你最近的服务器上,第二个就是lua+waf,这两个的功能是达到访问控制的,简单来说就是cc策略之类的,这些服务器再复杂点就是加一些elk之类的日志分析类工具,将数据传到后台做分析。
3。后端服务器,也就是用户请求从节点反代到后端的源站服务器,这边一般就是监听节点转发过来的请求就行
cdn的作用是干嘛的?
1,减少网站压力,讲请求分开,不需要每次都去源站服务器上下载图片和视频之类的静态资源
2,提高访问速度,每次访问会从最近的服务器提供图片这些静态资源
3,隐藏源站服务器,用户只能查到cdn节点的服务器ip地址,不知道源站ip,这样是为了保证源站的安全,不会被不法分子盯上。
4,大部分cdn都是提供cc防护功能的,也就是访问控制,可以很好的限制一些攻击