cdn理解

不使用cdn:

MyAnswer博客

本意在于尽可能避免开互联网上所有可能影响数据传输速度和稳定性的瓶颈和环节,是内容传输的更快,更稳定

主要的目的:

1.即内容分发网络,使用户就近取得所需内容,解决internet网中网络拥挤的状况,提高用户访问网站的速度

2.解决因分布,带宽,服务器性能带来的访问延迟问题,适用于站点加速,点播,直播等场景

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

相当于是一个跨地区的负载均衡器,不需要访问远处的源站服务器,通信距离短了,自然响应速度快;


缺点:

实施复杂,投资大(使用第三方产品  七牛云)

目前大部分的cdn还只是对静态内容加速,对动态加速效果不是太好


CND实现原理:

不使用cdn:

MyAnswer博客

使用cnd:

MyAnswer博客

自己搭建cdn服务器:  nginx+squid实现缓存功能

  1. 搭建两个web服务,使用nginx实现, 一个做源站(然后域名www.cdntest.com),配置实现:提供可以访问的web服务;

  2. 另外一个做反向代理,接收用请求,配置实现功能是:代理到后端的squid

MyAnswer博客

部署:

192.168.202.147 cdn服务器:上面安装nginx-反向代理机器和squid

192.168.202.148 静态资源服务器

环境准备:

centos7软件源设置,提高下载速度: 

mkdir /etc/yum.repos.d/bacakup

mv /etc/yum.repos.d/* /etc/yum.repos.d/bacakup

下载阿里的yum源: wget -O /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all

yum makecache

两台服务器上都安装nginx

安装: yum install -y nginx

修改反向代理服务器配置文件: vim /etc/nginx/nginx.conf

配置反向代理:

server {
listen 80 default_server;
charset utf-8;

#将请求代理到squid服务器
location / {

proxy_pass http://127.0.0.1:3128; #填写squid服务器的IP}

}

激活和启动nginx服务:

开机自启: systemctl enable nginx.service

启动: systemctl start nginx.service


Squid缓存服务器配置:

安装Squid : yum install squid

修改配置文件: vim /etc/squid/squid.conf

#squid监听端口

http_port 3128 accel vhost vport

#源站服务器地址端口

cache_peer 192.168.232.104 parent 80 0 originserver

激活和启动squid服务:

systemctl enable squid.service

systemctl start squid.service


再配置另外一台nginx源服务器:

server {

server_name 192.168.232.104; #配置域名,其它的保持默认即可root /usr/share/nginx/html;
charset utf-8;

}

最后配置解析:

MyAnswer博客


解析流程图:

MyAnswer博客

MyAnswer博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论