• Nginx proxy_cache 缓存静态文件


    原文链接:https://blog.csdn.net/bjgaocp/article/details/87867521

    创建缓存目录
    mkdir /tmp/ngx_cache

    添加下面语句在http{ }标签中
    proxy_temp_path /data/ngx_cache/proxy_temp_dir;
    proxy_cache_path /tmp/ngx_cache/proxy_cache_dir levels=1:2 keys_zone=filecache:30m inactive=1d max_size=100m;
    定义/tmp/ngx_cache为缓存路径 定义key值名称为filecache存储key hash内存空间30m缓存失效时间1天,最大磁盘存储单文件100m
    levels=1:2 的意义:缓存文件存放的位置 以缓存文件最后一位定义一级目录,倒数第3位和倒数第2位定义二级目录,多目录的好处是加速查询
    如何确定缓存文件的命名:缓存文件的命名规则与proxy_cache_key 有关,proxy_cache_key "$host$request_uri";
    echo -n www.exaple.com/index.html | md5sum


    proxy_temp_path 缓存临时目录
    proxy_cache_path 真正缓存存放目录
    两个目录必须放在同一分区

    upstream webserver {
    server 10.125.192.4:8080;
    }
    server {
    listen 80;
    location / {
    proxy_pass http://webserver;
    proxy_next_upstream http_502 http_504 error timeout invalid_header; #出错尝试负载均衡中另外一个节点
    proxy_cache filecache; # 使用缓存区 缓存键空间名要和proxy_cache_path 对应上
    proxy_connect_timeout 5;
    proxy_read_timeout 60;
    proxy_send_timeout 5;
    proxy_buffer_size 16k;
    proxy_buffers 4 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    proxy_cache_valid 200 304 12h; #指定状态码的缓存时间
    proxy_cache_valid 301 302 1m;
    proxy_cache_valid any 1m;
    proxy_cache_key $host$uri$is_args$args; #指定键key的格式
    proxy_set_header Host $host; #传递主机名给后端节点
    proxy_set_header X-Forwarded-For $remote_addr; #传递客户端IP给后端节点
    add_header X-Cache-Status “$upstream_cache_status from $server_addr”; #自定义头部信息 crul -I 可以查看缓存命中状态,哪个服务器响应的。
    expires 1d; #过期时间
    }
    }

    重启nginx 观察进程 会发现nginx多了两个cache的进程
    /etc/init.d/nginx -s reload
    pa aux |grep nginx


    让/tmp目录使用tmpfs文件系统来加快访问效率(划分内存作为缓存)
    mkdir /tmp/ngx_cache
    mount -t tmpfs -o size=16m tmpfs /tmp/ngx_cache
    vim /etc/fstab #加入下行挂载信息
    #tmpfs /tmp/ngx_cache tmpfs rw,relatime,size=16m 0 0

  • 相关阅读:
    Code First 迁移更新数据库
    vs2013常用快捷键
    Uploadify v3.2.1 参数说明
    中文datepicker控件
    C#去掉HTML标记
    扩展HtmlHelper类实现Mvc4分页
    MVC4实现批量更新数据
    MVC4.0实现批量删除
    通知的多线程问题 iOS
    写一个 setter 方法用于完成 @property (nonatomic, retain) NSString *name,
  • 原文地址:https://www.cnblogs.com/fswhq/p/12215159.html
Copyright © 2020-2023  润新知