Web缓存代理与CDN内容分发网络概念

1.Web缓存代理

1.1 什么是web缓存

Web 缓存是指一个 Web 资源(如 html 页面,图片,js,数据等)存在于 Web 服务器和客户端(浏览器)之间的副本。缓存会根据进来的请求保存输出内容的副本;当下一个请求来到的时候,如果是相同的 URL,缓存会根据缓存机制决定是直接使用副本响应访问请求,还是向源服务器再次发送请求。比较常见的就是浏览器会缓存访问过网站的网页,当再次访问这个 URL 地址的时候,如果网页没有更新,就不会再次下载网页,而是直接使用本地缓存的网页。只有当网站明确标识资源已经更新,浏览器才会再次下载网页。

1.2 web缓存的作用

存储一些之前给访问过的,且可能要被再次访问的静态网页资源对象,使客户端可以直接从缓存代理服务器获取资源,从而减少上游源服务器的负载压力,加快网站的整体访问速度。
      代理服务器还可以代替客户端去获取源服务器的资源,从而隐藏客户端的真实地址。
 

1.3 web缓存代理实验

先配置好三台nginx虚拟机

初始化配置

###关闭和禁止防火墙开机自启功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

源码编译安装nginx

两台web网站nginx配置要访问的html文件

关闭长连接重启nginx

在作为访问的nginx上配置以下设置

http {
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;



    upstream cache_server{
        server 192.168.80.20:80;  #指定两台web服务器的ip
        server 192.168.80.30:80;
    }
    

创建/data/nginx/cache -p 文件目录   修改权限chown nginx:nginx /data/nginx/cache

继续修改配置文件

   server {
        listen 80;
        server_name www.xy101.com;
        location / {
            proxy_cache my_cache;               
#指定用于页面缓存的共享内存,zone名称由proxy_cache_path指令定义
            proxy_cache_valid 200 60m;         
#为不同的响应状态码设置不同的缓存时间,此为缓存状态码为200的请求,缓存时长为60分钟
            proxy_cache_key $request_uri;       
#指定缓存文件的key为请求的URI
            add_header Nginx-Cache-Status $upstream_cache_status      
#把缓存状态设置为头部信息,响应给客户端
            proxy_pass http://cache_server;     
#设置代理转发的后端服务器的协议和地址
        }
    }
}
ngixn -p #查看配置有没有问题

systemctl restart nginx  #重启nginx

网页测试的时候第一次访问

第二次访问时

MISS:未命中缓存
HIT: 命中缓存
EXPIRED:缓存过期
STALE:命中了陈旧缓存
REVALIDDATED:Nginx验证陈旧缓存依然有效
UPDATING:内容陈旧,但正在更新BYPASS:x响应从原始服务器获取

时刻tail -f 监控日志文件,只会出现一次访问记录,第二次访问文件是访问的缓存,所以不会出现记录等信息。到此实验结束。

2.CDN

2.1 CDN概述

CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的cache(缓存)层,将网站的内容发布到最接近用户的网络“边缘”节点,使用户可以就近取得所需的内容(就近原则),提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。
简单的说,CDN的工作原理就是将源站的资源缓存到位于全球各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都发送到源站获取,避免网络拥塞、缓解源站压力,保证用户访问资源的速度和体验。

2.2 CDN优势

(1)CDN节点解决了跨运营商和跨地域访问的问题,访问延时大大降低;
(2)大部分请求在CDN边缘节点完成,CDN起到了分流作用,减轻了源站的负载。

2.3 CDN对网络的优化作用

解决服务器端“第一公里”问题
缓解甚至消除了不同运营商之间互联的瓶颈造成的影响
减轻了各省的出口带宽压力
缓解了骨干网的压力
优化了网上热点内容的分布

2.4 CDN访问过程

1.用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址,
2.LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期)3.ROOT DNS将域名授权dns记录回应给 LocalDns
4.LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址5.域名授权dns查询域名记录后(一般是CNAME),回应给 LocalDns
6.LocalDns得到域名记录后,向智能调度DNS查询域名的ip地址7.智能调度DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN节点ip地址回应给 LocalDns
8.LocalDns将得到的域名ip地址,回应给用户端
9.用户得到域名ip地址后,访问站点服务器
10.CDN节点服务器应答请求,将内容返回给客户端,(缓存服务器一方面在本地进行保存以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值