Nginx配置缓存静态资源

来源:互联网 发布:雪山贷网络贷款 编辑:程序博客网 时间:2024/05/17 02:17

proxy_cache_path /nginx/cache/mall levels=1:2 keys_zone=mall:20m max_size=1g;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
           proxy_pass http://10.176.65.48:8080/;
           # proxy_set_header X-Real-IP $remote_addr;
           # proxy_cache mall;
           # proxy_cache_valid 200 10m;
        }

        location ~/cache/ {
           proxy_pass http://10.176.65.48:8080;
           proxy_cache_methods GET HEAD POST;
           proxy_cache_key "$request_uri|$request_body";
           proxy_set_header X-Real-IP $remote_addr;
           add_header X-Via $server_addr;
           add_header X-Cache $upstream_cache_status;
           proxy_cache mall;
           proxy_cache_valid 200 10m;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }


Aproxy_cache_path

格式:

proxy_cache_path path [levels=numbers] keys_zone=zone_name:zone_size[inactive=time] [max_size=size]

说明:

path -缓存文件存放的位置

levels -缓存目录结构,可以是123位数字作为目录,最多是3位数字如:1,1:2

keys_zone -指定缓存池名字及大小,每个定义缓存路径必须不同

inactive -设置每个缓存区缓存文件的有效时长,超过该时长没被访问的缓存被删除

max_size -设置不活动的缓存大小,不活动的缓存超过该大小后被删除


Bproxy_cache

格式:

proxy_cache cache_name

说明:

指定缓存区域的名字,一个相同的区域可以在不同的地方使用。


Cproxy_cache_valid

格式:

proxy_cache_valid reply_code [reply code|any] time;

说明:

reply_code -不同的应答代码

time -为不同应答设置不同缓存时长 默认为分钟m

any - 代表任何代码

 

$upstream_cache_status - 缓存的状态 可能的值为:MISS(未命中)、Hint(命中)、Expired(请求传递到后台)、Stale(后端得到过期的应答)、Updating(正更新,使用旧的应答)等。那么,在这里如果缓存的状态为HINT,就说明命中了缓存,也就是调用了缓存文件。


注:默认情况下nginx缓存的请求有 GET 和 HEAD ,我们要自己配置 proxy_cache_methods ;同时我们还需要指定key的规则 proxy_cache_key


原创粉丝点击