LINUX

CDN的原理与搭建squid

CDN的原理与搭建

1 什么是cdn

CDN(Content Delivery Network)是指内容分发网络,也称为内容传送网络。你可以将自己的静态文件(图片 html静态页面,jscss),分发到世界各地的cdn服务器。 比如,你们的机房在北京,全国各地的用户都要访问北京服务器,如果你们在深圳部署看CDN服务器, 那么, 北京的服务器就可以将内容分发到深圳服务器, 深圳及其周围的用户, 就可以就近访问深圳服务器。因为距离 更近, 所以加速了整个访问过程。 另外,由于用户访问源站业务有性能瓶颈,通过cdn技术把源站的内容缓存到多个节点。用户向源站域名发起 请求时,请求会被调度至最接近用户的服务节点,直接由服务节点直接快速响应,有效降低用户访问延迟,提 升可用性。

2 为什么用cdn 

1 远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等 功能。 

相当于是一个跨地区的负载均衡,全球各地的CDN服务器, 都在为源站服务器分担访问压力 

2 本地Cache加速,快速响应 

本地用户访问本地CDN服务器,不需要访问远处的源站服务器,通信距离短了,自然响应快速

3 集群抗攻击:广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种DDoS击对网站的影响,同时保证较好的服务质量 。

因为你是分布式网络, 攻击者攻击了某一个区域, 其它区域的CDN不受影响 

4 镜像服务:能够消除不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户 都能得到良好的访问质量

例如:联通用户访问电信主机, 访问线路是多买漫长, 如果我到联通网络中,部署了联通cdn,那么整个请求都 不需要到达联通主干网络, 直接从联通的一个分支网络过度访问两位一个分支网络即可。

5 节省骨干网带宽,减少带宽需求量,这点相当于做了公益

就近访问了CDN, 不需要借助远程线路去访问源站, 相当于用本地电话取代了长途电话, 长途电话是要用到主干线 路的, 本地电话只需要用到当地的分支网络,所以这里节约了主干网带宽。

3 cdn的实现原理

image.png

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
     }
}

激活和启动nginx服务

[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和端口

激活和启动squid服务

systemctl enable squid.service 
systemctl start squid.service

Nginx-Web服务器配置 

安装nginx同上。 配置/etc/nginx/nginx.conf

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

1.txt里面直接输入一个测试字符:这是来自192.168.232.105源站上面的内容

云服务器域名解析用cname类型


(0)
分享:

本文由:xiasohu168.com 作者:xiaoshu发表,转载请注明来源!

相关阅读