Nginx用为缓存服务器

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分钟;

你可能感兴趣的:(Nginx用为缓存服务器)