原文链接: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

Nginx proxy_cache 缓存静态文件的更多相关文章

  1. 霸气!Nginx 中缓存静态文件秘籍

    导读 这篇教程说明你应该怎样配置 nginx.设置 HTTP 头部过期时间,用 Cache-Control 中的 max-age 标记为静态文件(比如图片. CSS 和 Javascript 文件)设 ...

  2. 【摘自张宴的"实战:Nginx"】使用nginx的proxy_cache模块替代squid,缓存静态文件

    #user nobody;worker_processes 1; error_log logs/static_source.error.log;#error_log logs/error.log no ...

  3. js操作serviceWorker缓存静态文件

    js操作serviceWorker缓存静态文件 serviceWorker的作用就是用来做离线应用的,在手机端程序中用的较多 先看下效果 index.html <!DOCTYPE html> ...

  4. nginx实现动态/静态文件缓存(week4_day1_part2)-技术流ken

    nginx实现静态文件缓存实战 1.nginx静态文件缓存 如果要熟练使用nginx来实现文件的缓存,那下面的几个指令你必须要牢记于心 指令1:proxy_cache_path 作用:设置缓存数据的相 ...

  5. 用nginx缓存静态文件

        这篇教程说明你应该怎样配置 nginx.设置 HTTP 头部过期时间,用 Cache-Control 中的 max-age 标记为静态文件(比如图片. CSS 和 Javascript 文件) ...

  6. virtualBox 虚拟机下nginx设置不缓存静态文件不起作用解决办法

    最近开发的时候,调整js时会一直使用缓存文件,无法显示改动!nginx配置静态文件add_header Cache-Control no-cache;也不起作用,很苦恼! nginx配置代码:even ...

  7. nginx配置1:借助Nginx搭建反向代理服务器与缓存静态文件

    修改配置文件nginx.conf (1)进程数与每个进程的最大连接数: •nginx进程数,建议设置为等于CPU总核心数 •单个进程最大连接数,那么该服务器的最大连接数=连接数*进程数 (2)Ngin ...

  8. nginx优化:使用expires在浏览器端缓存静态文件

    一,nginx中expires指令的作用 网站的图片等静态文件一旦发布,通常很少改动, 为了减小对服务器请求的压力,提高用户浏览速度, 我们可以设置nginx中的expires, 使用户访问一次后,将 ...

  9. nginx proxy_cache缓存详解

    目录 1. 关于缓冲区指令 1.1 proxy_buffer_size 1.2 proxy_buffering 1.3 proxy_buffers 1.4 proxy_busy_buffers_siz ...

随机推荐

  1. RFC笔记—IP Version 6 Addressing Architecture

    IP Version 6 Addressing Architecture,RFC4291 It includes the basic formats for the various types of ...

  2. Cacti 抓取数据方式 安装spine

    安装好cacti后首先要设置获取数据的方式 Cacti 获取数据的方式有两种,1.监控端的脚本(可以是php, shell, perl 或其他脚本)2.或者 snmp 协议获取. Cacti 会在固定 ...

  3. 解决github图片不显示的问题

    修改hosts C:\Windows\System32\drivers\etc\hosts 在文件末尾添加: # GitHub Start 192.30.253.112 Build software ...

  4. 【爬虫】 爬虫请求json数据,返回乱码问题的解决

    from django.http import JsonResponse from rest_framework.utils import json from utils import request ...

  5. .net core 轻量级容器 ServiceProvider 源码分析

    首先看 ServiceCollection 的定义 //定义 public class ServiceCollection : IServiceCollection { private readonl ...

  6. python3-cookbook笔记:第八章 类与对象

    python3-cookbook中每个小节以问题.解决方案和讨论三个部分探讨了Python3在某类问题中的最优解决方式,或者说是探讨Python3本身的数据结构.函数.类等特性在某类问题上如何更好地使 ...

  7. Dynamics 365 marketing中添加自定义渠道磁贴

    Dynamics 365 marketing中默认的渠道只有Marketing Email和Marketing Activity,想要添加其他渠道必须自定义磁贴,自定义磁贴的步骤如下: 1.创建实体 ...

  8. Elasticsearch分布式架构

    Reference 1. http://solutionhacker.com/elasticsearch-architecture-overview/ 2. https://github.com/ba ...

  9. Python3标准库:bisect维护有序列表

    1. bisect维护有序列表 bisect模块实现了一个算法来向列表中插入元素,同时仍保持列表有序. 1.1 有序插入 下面给出一个简单的例子,这里使用insort()按有序顺序向一个列表中插入元素 ...

  10. 本地服务开启MySQL57提示本地计算机上MySQL服务启动后停止。。。。

    1.首先以管理员身份启动cmd,要不然服务禁止访问. 2.然后在cmd中输入 mysqld --remove mysql或者mysqld --remove mysql57来移除服务. 3.然后进入My ...