Nginx--缓存

一般存的是静态资源,可以提高客户端的访问速度,并减轻服务器的压力

1 客户端缓存

 通过设置 expires 指令,响应头中将会返回Expires 和Cache-Control字段

 当浏览器发现响应头存在这样的缓存字段,当再次请求相同资源时,就会确认在客户端的资源是否过期

location / {
    expires    30m;    #缓存30分钟
}

2 服务器缓存(主要设置在反向代理服务器上)

 将静态资源的缓存设置在服务器端,当多个用户访问同一个资源时,缓存命中率及系统的性能将以指数的形式提升

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
     ...
        upstream backend{
            server 192.168.198.130;
            server 192.168.198.131;
        }
        proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=test:20m max_size=10g;
        server {
            listen       80;
            server_name  localhost;
            #charset koi8-r;
            #access_log  logs/host.access.log  main;
            location / {
               proxy_pass http://backend;
               proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;
               proxy_set_header X-real-ip    $remote_addr;
               proxy_cache test;
               proxy_cache_valid 200 10m;
            }
        }
proxy_cache_path
语法:proxy_cache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time] [max_size=size];
默认值:None
使用字段:http
指定缓存的路径和一些其他参数,缓存的数据存储在文件中,并且使用代理url的哈希值作为关键字与文件名
levels - 目录结构,可以使用任意的1位或2位数字作为目录结构,如 X, X:X或X:X:X ,最多三级
keys_zone - 指定所有活动的key和元数据存储的共享内存池区域
    可以定义多个内存池,但必须是不重复的路径,例如:
    proxy_cache_path  /data/nginx/cache/one    levels=1      keys_zone=one:10m;
    proxy_cache_path  /data/nginx/cache/two    levels=2:2    keys_zone=two:100m;
    proxy_cache_path  /data/nginx/cache/three  levels=1:1:2  keys_zone=three:1000m;
inactive - 指定缓存数据的失效时间,默认为10分钟
max_size - 定义最大缓存大小,超出后则删除最少使用的数据
proxy_cache
语法:proxy_cache  zone_name;
默认值:None
使用字段:http, server, location
设置一个缓存区域的名称,一个相同的区域可以在不同的地方使用
proxy_cache_valid
语法:proxy_cache_valid reply_code [reply_code …] time;
默认值:None
使用字段:http, server, location
为不同的应答设置不同的缓存时间,例如:
proxy_cache_valid  200 302  10m;
proxy_cache_valid  404      1m;
为应答代码为200和302的设置缓存时间为10分钟,404代码缓存1分钟
如果只定义时间:
proxy_cache_valid 5m;
那么只对代码为200, 301和302的应答进行缓存
同样可以使用any参数任何应答
proxy_cache_valid  200 302 10m;
proxy_cache_valid  301 1h;
proxy_cache_valid  any 1m;
原文地址:https://www.cnblogs.com/Xinenhui/p/14130404.html