CDN的原理与搭建
1 什么是cdn
CDN(Content Delivery Network)是指内容分发网络,也称为内容传送网络。你可以将自己的静态文件(图片 和html静态页面,js,css),分发到世界各地的cdn服务器。 比如,你们的机房在北京,全国各地的用户都要访问北京服务器,如果你们在深圳部署看CDN服务器, 那么, 北京的服务器就可以将内容分发到深圳服务器, 深圳及其周围的用户, 就可以就近访问深圳服务器。因为距离 更近, 所以加速了整个访问过程。 另外,由于用户访问源站业务有性能瓶颈,通过技术把源站的内容缓存到多个节点。用户向源站域名发起 请求时,请求会被调度至最接近用户的服务节点,直接由服务节点直接快速响应,有效降低用户访问延迟,提 升可用性。
2 为什么用cdn
1 远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等 功能。
相当于是一个跨地区的负载均衡,全球各地的服务器, 都在为源站服务器分担访问压力
2 本地Cache加速,快速响应
本地用户访问本地服务器,不需要访问远处的源站服务器,通信距离短了,自然响应快速
3 集群抗攻击:广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种DDoS攻 击对网站的影响,同时保证较好的服务质量 。
因为你是分布式网络, 攻击者攻击了某一个区域, 其它区域的不受影响
4 镜像服务:能够消除不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户 都能得到良好的访问质量
例如:联通用户访问电信主机, 访问线路是多买漫长, 如果我到联通网络中,部署了联通cdn,那么整个请求都 不需要到达联通主干网络, 直接从联通的一个分支网络过度访问两位一个分支网络即可。
5 节省骨干网带宽,减少带宽需求量,这点相当于做了公益
就近访问了, 不需要借助远程线路去访问源站, 相当于用本地电话取代了长途电话, 长途电话是要用到主干线 路的, 本地电话只需要用到当地的分支网络,所以这里节约了主干网带宽。
3 cdn的实现原理
CentOS7搭建CDN
centos7 软件源设置, 不设置的话下面的软件下载会慢 备份原来的.repo文件
[root@localhost ~]# mkdir /etc/yum.repos.d/bacakup [root@localhost~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/bacakup
下载阿里的yum源
[root@localhost~]# wget -O /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo [root@localhost~]# wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
清除和新建元数据缓存
[root@localhost~]# yum clean all [root@localhost~]# yum makecache
安装Nginx
[root@proxy ~]# yum install -y Nginx
配置/etc/Nginx/Nginx.conf 其它默认 (centos6.x的系统是编辑/etc/Nginx/conf.d/defualt.conf)
[root@proxy ~]# vim /etc/Nginx/Nginx.conf
server { listen 80 default_server; #这端口80,默认的就行,可以按照实际需求更改 server_name 192.168.232.105; #这个可以自定义 charset utf-8; location / { proxy_pass http://192.168.232.105:3128; #填写squid服务器的IP } }
激活和启动服务
[root@proxy ~]# systemctl enable Nginx.service [root@proxy ~]# systemctl start Nginx.service
Squid缓存服务器配置
squid
yum install squid
/etc/squid/squid.conf,其它保存为默认
vim /etc/squid/squid.conf
http_port 3128 accel vhost vport cache_peer 192.168.232.104 parent 80 0 originserver #这里配置的是源服务器的ip和端口
systemctl enable squid.service systemctl start squid.service
Nginx-Web服务器配置
vim /etc/Nginx/Nginx.conf server { server_name 192.168.232.104; #配置域名,其它的保持默认即可 root /usr/share/Nginx/html; charset utf-8; }
为了达到实验要求,自己的Nginx-web服务器上必须放有1.txt文件。
vim /usr/share/Nginx/html/1.txt
在里面直接输入一个测试字符:这是来自192.168.232.105源站上面的内容
云服务器域名解析用cname类型
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。