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

1.Web缓存代理

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

1.2web缓存的作用

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

代理服务器还可以代替客户端去获取源服务器的资源,从而隐藏客户端的真实地址。

1.3常见的缓存代理应用

  • 本地实现:squid、nginx、varnish
  • 云环境远端实现:CDN
  • 数据库缓存代理:Redis、Memcached

CDN在云场景中  使用比较多  大量广泛使用

Squid和varnish 传统应用 用得不多

性能上Squid和varnish比较好  但是nginx的管理更加方便

2.nginx缓存代理部署

(1)准备工作

三台虚拟机

192.168.186.100

192.168.186.101

192.168.186.102

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

(2)安装nginx

yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

cd /opt/nginx/
tar zxvf nginx-1.12.0.tar.gz

cd nginx-1.12.0/

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module

make && make install

(3)准备测试页面

192.168.186.100

cd /usr/share/nginx/html/
vim test.html
<html>
<body>
<h1>this is kang meng!</h1>
<img src="km1.png">
</body>
</html>
 
systemctl start nginx

 192.168.186.101

cd /usr/share/nginx/html/
vim test.html
<html>
<body>
<h1>this is test </h1>
<img src="test.png">
</body>
</html>
 
systemctl start nginx

 浏览器验证

 关闭192.168.186.100/102的长连接

vim nginx.conf
systemctl restart nginx

(4)设置nginx缓存服务器配置

192.168.186.102
 mkdir /data/nginx/cache -p
 chown nginx:nginx /data/nginx/cache
vim /etc/nginx/nginx.conf
29行 #gzip  on;添加以下内容
   proxy_cache_path /data/nginx/cache levels=1 keys_zone=my_cache:10m max_size=10g 
   inactive=60m use_temp_path=off;
   upstream webservers {
     server 20.0.0.128:80;
     server 20.0.0.130:80;
  }
 
vim /etc/nginx/conf.d/default.conf
删除原来8,9行内容,添加以下内容
proxy_cache my_cache;
            proxy_cache_valid 200 60m;
            proxy_cache_key $request_uri;
            add_header Nginx-Cache-Status $upstream_cache_status;
            proxy_pass http://webservers;
 
systemctl restart nginx

(5)网页测试

 

3.CDN概念及作用

3.1 CDN的概念

CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络”边缘“的节点,使用户可以就近取得所需的内容(就近原则),提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。

3.2 CDN的优势

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

3.3 CDN的工作过程

3.4 CDN是如何获取内容?

  1. 让用户直接访问资源,如果CDN有资源则可以命中缓存并直接响应返回给用户;如果没有命中到缓存,则会将请求发送给上游源站点服务器获取资源,并同步到CDN的缓存中
  2. 对于热点资源,则要预先做缓存预热,再让用户访问资源,即可直接命中CDN中的缓存直接响应返回给用户
  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值