文章目录
CDN
1.什么是CDN
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
2.CDN的基本原理
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
3.CDN的基本特点
1、本地Cache加速:提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性。
2、镜像服务:消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。
3、远程加速:远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度。
4、带宽优化:自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。
5、集群抗攻击:广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响,同时保证较好的服务质量 。
我们可以尝试在Linux系统下利用squid(个高性能的代理缓存服务器),来进行CDN的搭建,以此来了解CDN的优点。
一.正向代理
正向代理:是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径(也就是翻墙)。
例如有一台虚拟机,其无法访问网页:
我们可以通过设置正向代理,让能访问网页的主机作为代理,使得无法访问网页的主机通过代理正常访问网页。
1.代理主机安装squid
Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。
我们在能访问网页的主机上安装squid,开启其代理功能。
yum install squid -y
2.打开squid服务,查看其占用的端口
systemctl start squid ###开启squid
netstat -antlupe | grep squid ###查看squid占用的端口
firewall-cmd --permanent --add-port=3128/tcp ###火墙写入其占用的端口
firewall-cmd --reload ###重启火墙
3.修改配置文件
vim /etc/squid/squid.conf ###修改squid服务的配置文件
100 ##缓存数据大小,超过100M将自动清理之前的缓存
16 ##子目录个数,用于存放缓存数据的文件
256 ##子目录中文件的个数
4.客户端浏览器设置代理
此时客户端主机依然无法访问页面,也无法ping通域名。
在浏览器设置代理:
**Edit > Preferences > Advanced > Network > Connection Settings > Manual > Http Proxy : 172.25.254.77(可联网主机ip) Prot:3128 **
此时,我们就可以通过浏览器访问网页了:
依然ping不通百度域名:
这是因为主机是依靠代理服务器上网的,与主机本身能否上网并无关系。
二.反向代理
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
1.反向代理服务器安装squid,并修改配置文件
将没有安装apache的主机:172.25.70.252作为反向代理服务器,
将安装了apache的主机:172.25.70.251作为资源所在的目标服务器
修改反向代理服务器的squid配置文件:
vim /etc/squid/squid.conf
此时访问反向代理服务器ip,看到的是资源所在的目标服务器上的内容:
注意:反向代理服务器需要将squid配置文件中的默认端口3128删去,监听80端口。
三.反向代理实现轮询调度
1.修改配置文件
在反向代理服务器的squid配置文件中修改:
round-robin ###轮询
weight=3 ###权重为3 意为访问web1 3次,再访问web2。
2.配置本地解析
在浏览器所在的主机配置本地解析,ip为调度器的ip。
访问结果,由于轮询权重为3,所以访问3此web1,才会访问1次web2.