IT序号网

Nginx用为缓存服务器知识解答

qq123 2021年06月13日 程序员 143 0
Nginx 缓存组成
  • 共享内存
    • 数据定位
    • 存储键和缓存对象的元数据
  • 磁盘空间:
    • 存储数据
 
nginx做为反向代理时,能够将来自upstream的响应缓存至本地,并在后续的客户端请求同样内容时直接从本地构造响应报文。
 
proxy_cache 模块

 
为上游服务器提供缓存功能
     当客户端再请求时先从缓存中找,找到直接发给客户端;
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m max_size=1G
  •  /data/nginx/cache
    • 本地接受上游服务器响应的,存的目录;
      • 缓存文件名:/data/nginx/cache/ c/ 29/b7f54b2df7773722d382f4809d650 29c
  • level
    • 缓存的目录名字符个数
    • 缓存最多三级
      • 1:2:2
      • 有三级目录,第一级目录名1个字符,第二,三级目录名2个字符
      • 字符个数最多2个
  • keys_zone=one:10m
    • one
      • 缓存区域名称
    • 10m
      • 缓存大小为10M
  • max_size=10G
    • /data/nginx/cache 缓存对象目录的大小
 
实践

 
  http{ 
      upstream backend { 
              server 10.103.100.3:8090; 
              server 10.103.100.4:8090; 
       } 
  
       
     proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m max_size=1G 
      server { 
  
          listen 80; 
          server_name localhost; 
  
          location /{ 
              proxy_pass http://backend; 
              proxy_cache one; 
              proxy_cache_valid 200 10m; 
             
          } 
     } 
       
  
  }
 
注意:
  • proxy_cache_path 和upstream一样在http配置块中定义
  • location中使用proxy_cache 缓冲区名 来使用该缓存区
  • 注意,必须定义缓存有效时间,不然无法使用缓存
    • 如不定义:proxy_cache_valid 200 10m;则无法使用返回页为200的缓存;
    • 当然可以使用proxy_cache_valid any      1m;定义所有的缓存有效期为1分钟;

发布评论
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Nginx 反向代理 负载均衡知识解答
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。