Nginx 缓存

# 定义缓存路径
Syntax: proxy_cache_path patch [levels=levels]
Default: -
Content: http



# 缓存
Syntax: proxy_cache zone|off;
Default: proxy_cache off;
Content: http,servre,location



# 缓存过期周期
Syntax: proxy_cache_valid [code..] time;
Default:-
Content: http,server,location



# 缓存维度
Syntax: proxy_cache_key string;
Default: proxy_cache_key $scheme$proxy_host$request_uri;
Content: http,server,location



http {
    
    # 例子
    # levels 分级缓存,key_zone 空间名字以及大小,max_size 控制这个目录最大大小,inactive 60分钟内没有使用就会别清掉, use_temp_pach 是使用临时文件
    proxy_caache_path /opt/app/cahe levels=1:2 key_zone=xxx_cache:10m max_size=10g inactive=10m use_temp_path=off;

    server {
        location / {
            #proxy_pass http://xxx;
            # 使用缓存
            proxy_cache xxx_cache;
            # 200 304 头12小时才过期
            proxy_cache_valid 200 304 12h;
            # 除了200 304 10分钟后才过期
            proxy_cache_valid any 10m;
            # 缓存维度
            proxy_cache_key $scheme$proxy_host$request_uri;
            # 告诉客户通缓存命中状态
            add_head Ngin-Cache "$upstream_cache_status";

            # 如果有错误将跳过访问下一套
            proxy_next_upstream err timeout invalid_header http_500 http_502 http_503 http_504;
            #include proxy_params;
        }
    }

}



# 配置某些URL不缓存
Syntax: proxy_no_cache string ...;
Default: -
Content: http,server,location;