zoukankan      html  css  js  c++  java
  • Nginx如何配置基础缓存

    // /path/to/cache/:用于缓存的本地磁盘目录
    // levels :在 /path/to/cache/ 设置了一个两级层次结构的目录。
    //            将大量的文件放置在单个目录中会导致文件访问缓慢,
    //            所以针对大多数部署,我们推荐使用两级目录层次结构。如果 levels 参数没有配置,则 Nginx 会将所有的文件放到同一个目录中。
    // keys_zone :设置一个共享内存区,该内存区用于存储缓存键和元数据,有些类似计时器的用途。
    //           将键的拷贝放入内存可以使 Nginx 在不检索磁盘的情况下快速决定一个请求是 HIT 还是 MISS,这样大大提高了检索速度。
    //           一个 1MB 的内存空间可以存储大约 8000 个 key,那么上面配置的 10MB 内存空间可以存储差不多 80000 个 key。
    // max_size :设置了缓存的上限(在上面的例子中是 10G)。
    //                这是一个可选项;如果不指定具体值,那就是允许缓存不断增长,占用所有可用的磁盘空间。
    //                当缓存达到这个上限,处理器便调用 cache manager 来移除最近最少被使用的文件,这样把缓存的空间降低至这个限制之下。
    // inactive :指定了项目在不被访问的情况下能够在内存中保持的时间。
    //            在上面的例子中,如果一个文件在 60 分钟之内没有被请求,则缓存管理将会自动将其在内存中删除,不管该文件是否过期。
    //            该参数默认值为 10 分钟(10m)。注意,非活动内容有别于过期内容。Nginx 不会自动删除由缓存控制头部指定的过期内容。
    //            过期内容只有在 inactive 指定时间内没有被访问的情况下才会被删除。如果过期内容被访问了,那么 Nginx 就会将其从原服务器上刷新,并更新对应的 inactive 计时器。
    // use_temp_path:Nginx 最初会将注定写入缓存的文件先放入一个临时存储区域,use_temp_path=off 命令指示 Nginx 将在缓存这些文件时将它们写入同一个目录下。
    //                强烈建议将参数设置为 off 来避免在文件系统中不必要的数据拷贝。
    proxy_cache_path /path/to/hdd1 levels=1:2 keys_zone=my_cache_hdd1:10m max_size=10g inactive=60m use_temp_path=off;
    proxy_cache_path /path/to/hdd2 levels=1:2 keys_zone=my_cache_hdd2:10m max_size=10g inactive=60m use_temp_path=off;
    
    // 跨多硬盘分割缓存
    split_clients $request_uri $my_cache {
        50% "my_cache_hdd1";
        50% "my_cache_hdd2";
    }
    
    
    server {
        ...
        location / {
            proxy_cache my_cache;
            // 指示 Nginx 在刷新来自服务器的内容时使用 GET 请求。
            // 如果客户端的请求项已经被缓存过了,但是在缓存控制头部中定义为过期,那么 Nginx 就会在 GET 请求中包含 If-Modified-Since 字段,发送至服务器端。
            // 这项配置可以节约带宽,因为对于 Nginx 已经缓存过的文件,服务器只会在该文件请求头中 Last-Modified 记录的时间内被修改时才将全部文件一起发送。
            proxy_cache_revalidate on;
            // 该指令设置同一链接请求达到几次即被缓存,默认值为 1 。
            // 当缓存不断被填满时,这项设置便十分有用,因为这确保了只有那些被经常访问的内容会被缓存。
            proxy_cache_min_uses 3;
            // updating 参数告知 Nginx 在客户端请求的项目的更新正在原服务器中下载时发送旧内容,而不是向服务器转发重复的请求。
            // 第一个请求陈旧文件的用户不得不等待文件在原服务器中更新完毕。陈旧的文件会返回给随后的请求直到更新后的文件被全部下载。
            proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
            // 当多个客户端请求一个缓存中不存在的文件(或称之为一个 MISS),只有这些请求中的第一个被允许发送至服务器。
            // 其他请求在第一个请求得到满意结果之后在缓存中得到文件。如果不启用 proxy_cache_lock,则所有在缓存中找不到文件的请求都会直接与服务器通信。
            proxy_cache_lock on;
            proxy_pass http://my_upstream;
        }
    
    }
    
  • 相关阅读:
    js中的true和false
    js对象
    javascript性能
    js中数组的操作
    hadoop入门手册1:hadoop【2.7.1】【多节点】集群配置【必知配置知识1】
    hadoop2.7【单节点】单机、伪分布、分布式安装指导
    hadoop2.2使用手册2:如何运行自带wordcount
    hadoop2.x常用端口、定义方法及默认端口、hadoop1.X端口对比
    hadoop2.X使用手册1:通过web端口查看主节点、slave1节点及集群运行状态
    hadoop(2.x)以hadoop2.2为例完全分布式最新高可靠安装文档
  • 原文地址:https://www.cnblogs.com/phonecom/p/11118902.html
Copyright © 2011-2022 走看看