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是如何获取内容?
- 让用户直接访问资源,如果CDN有资源则可以命中缓存并直接响应返回给用户;如果没有命中到缓存,则会将请求发送给上游源站点服务器获取资源,并同步到CDN的缓存中
- 对于热点资源,则要预先做缓存预热,再让用户访问资源,即可直接命中CDN中的缓存直接响应返回给用户