Web缓存—Nginx和CDN应用

发布于:2024-07-03 ⋅ 阅读:(22) ⋅ 点赞:(0)

目录

一、代理的工作机制

二、概念

三、作用

四、常用的代理服务器

二.Nginx缓存代理服务器部署

1.在三台服务器上部署nginx

此处yum安装

2.准备测试界面 

三、CDN概念及作用

1.CDN的工作过程


一、代理的工作机制

(1)代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址。
(2)将获得的网页数据(静态Web元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应。

 

二、概念

代理服务器是一个位于客户端和原始(资源)服务器之间的服务器,为了从原始服务器取得内容,

客户端向代理服务器发送一个请求并指定目标原始服务器,然后代理服务器向原始服务器转交请求

并将获得的内容返回给客户端

缓存代理对于Web至关重要,尤其对于大型高负载Web站点。缓存可作为性能优化的一个重要手

段,可以极大减轻后端服务器的负载。通常对于静态资源,即较少经常更新的资源,如图片,css

或js等进行缓存,从而在每次刷新浏览器的时候,不用重新请求,而是从缓存里面读取,这样就可

以减轻服务器的压力

 

三、作用

  • 资源获取:代替客户端实现从原始服务器的资源获取;
  • 加速访问:代理服务器可能离原始服务器更近,从而起到一定的加速作用;
  • 缓存作用:代理服务器保存从原始服务器所获取的资源,从而实现客户端快速的获取;
  • 隐藏真实地址:代理服务器代替客户端去获取原始服务器资源,从而隐藏客户端真实信息。

 

四、常用的代理服务器

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

注意:

  • CDN在云场景中  使用比较多  大量广泛使用
  • Squid和varnish 传统应用 用得不多
  • 性能上Squid和varnish比较好  但是nginx的管理更加方便

二.Nginx缓存代理服务器部署

1.在三台服务器上部署nginx

  • 192.168.80.100
  • 192.168.80.101
  • 192.168.80.102

 源码安装参考👇

此处yum安装
初始化操作
systemctl disable --now firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
cd /etc/yum.repos.d
将nginx.repo拖入各服务器
yum install -y nginx
systemctl enable --now nginx

2.准备测试界面 

192.168.80.100

cd /usr/share/nginx/html
--------------------------------------------------------------------
 
vim test.html
<html>
<body>
<h1>this is test web page</h1>
<img src="yln.jpg">
</body>
</html>
---------------------------------------------------------------------
 

192.168.80.102

cd /usr/share/nginx/html
--------------------------------------------------------------------
 
vim test.html
<html>
<body>
<h1>this is test2 web page</h1>
<img src="yln2.jpg">
</body>
</html>
---------------------------------------------------------------------
 

mkdir /data/nginx/cache -p
chown nginx:nginx /data/nginx/cache
 
vim /etc/nginx/nginx.conf
proxy_cache_path /data/nginx/cache levels=1 keys_zone=my_cache:    10m max_size=10g inactive=60m use_temp_path=off;   #31行添加
 
#####################################################
●path:强制参数,指定缓存文件的存放路径。
●levels:定义了缓存目录的层级。每层可以用1(最多16种选择,0-f)或2(最多256种选择,00-ff)表示,中间用 : 分隔。
proxy_cache_path /data/nginx/cache;  代表所有缓存只有一个目录,比如/data/nginx/cache/d7b6e5978e3f042f52e875005925e51b
proxy_cache_path /data/nginx/cache levels=1:2;  代表缓存是二层目录(有16*256=4096个目录),比如/data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b
●keys_zone:强制参数,定义共享内存区的名称和大小,该共享内存用于保存缓存项目的元数据(所有活动的key和缓存数据相关的信息),这样nginx可以快速判断一个request是否命中或者未命中缓存,1m可以存储8000个key,10m可以存储80000个key。
●inactive:删除指定时间内未被访问的缓存文件,默认10分钟。
●max_size:设置了缓存存储的上限,如果不指定,最大会用掉所有磁盘空间。
●use_temp_path:直接把临时文件放在缓存目录中。
#####################################################
 
 
upstream webservers {
         server 192.168.80.100:80;
         server 192.168.80.101:80;
 }
  ###定义服务器池


ps如果报错,31行使用这个:proxy_cache_path /tmp/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

192.168.80.102 

vim /etc/nginx/conf.d/default.conf
删除原本8.9两行
 
    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://webservers;     #设置代理转发的后端服务器的协议和地址
        }
    
systemctl restart nginx

三、CDN概念及作用

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

CDN的优势:

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

1.CDN的工作过程

将源站点(web应用服务器)的静态网页资源缓存到CDN节点上,用户请求资源时,就近返回

CDN节点上缓存的资源,而不需要每个用户的请求都从源站点获取,从而避免了网络拥塞,缓解

了源站点的压力,提高用户访问资源的速度

  1. 浏览器发起静态资源URL请求,经过本地 DNS 解析,会将域名解析权交给域名 CNAME 指向的CDN 专用 DNS 服务器
  2. CDN的 DNS 服务器将 CDN 的全局负载均衡设备IP 地址返回给浏览器
  3. 浏览器向 CDN 全局负载均衡设备发起 URL请求
  4. CDN 全局负载均衡设备根据用户 IP 地址,以及用户请求的 URL,选择一台用户所属区域的区域负载均衡设备,向其发起请求。
  5. 区域负载均衡设备会为用户选择最合适的 CDN 缓存服务器 (考虑的依据包括: 服务器负载情况,距离用户的距离等) ,并返回给全局负载均衡设备。
  6. 全局负载均衡设备将选中的CDN缓存服务器IP 地址返回给用户
  7. 用户向 CDN 缓存服务器发起请求,缓存服务器响应用户请求,最终将用户所需要偶的内容返回给浏览器。

网站公告

今日签到

点亮在社区的每一天
去签到