Nginx用为缓存服务器

Posted Aiapple

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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/b7f54b2df7773722d382f4809d65029c
  • 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用为缓存服务器的主要内容,如果未能解决你的问题,请参考以下文章

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

比较对象可调用为 const

Nginx为uwsgi服务做缓存的配置方法

nginx为uwsgi服务做缓存的配置方法

NGINX 缓存 phpmyadmin – 图片未加载