A、proxy_cache mycache
    指定用于存放缓存 key 内存区域名称。其值为 http{}模块中 proxy_cache_path 中的keys_zone 的值。
    B、 proxy_cache_key $host$request_uri$arg_age
    指定 Nginx 生成的缓存的 key 的组成。
    $host$request_uri$args:主机名+URI+所有请求参数
    $host$request_uri$arg_age:主机名+URI+请求参数age
    C、 proxy_cache_bypass $arg_age
    指定是否越过缓存。即当前请求是否从缓存中读取数据,即只要请求参数中包含age参数,则不从缓存中读取。
    D、proxy_cache_methods GET HEAD
    指定客户端请求的哪些提交方法将被缓存,默认为 GET 与 HEAD,但不缓存 POST。如果只是想知道资源是否存在,则可以使用HEAD请求。
    E、 proxy_no_cache $aaa $bbb $ccc
    指定对本次请求是否不做缓存。只要有一个不为 0,就不对该请求结果缓存。
    F、 proxy_cache_purge $ddd $eee $fff
    指定是否清除缓存 key。变量只要有一个不为0,则清除缓存。
    G、proxy_cache_lock on
    指定是否采用互斥方式回源。指多个相同请求,只要一个能拿到互斥锁,其他请求阻塞,直到拿到锁的请求响应完毕。
    H、proxy_cache_lock_timeout 5s
    指定再次生成回源互斥锁的时限。避免拿到锁的请求迟迟没有响应。
    I、 proxy_cache_valid 5s
    对指定的 HTTP 状态码的响应数据进行缓存,并指定缓存时间。默认指定的状态码为200,301,302。 如下图:
    image.png
    第一行没有指定状态码的默认的是200,301,302。返回结果的响应码对应的缓存多长时间。正常响应码需要设置较短的缓存时间,异常响应码的可以设置较长的缓存时间。
    J、 proxy_cache_use_stale error timeout http_500
    设置启用托底缓存的条件。而一旦这里指定了相应的状态码,则前面 proxy_cache_calid中指定的相应状态码所生成的缓存就变为了“托底缓存”。托底缓存类似于被删除的key,但是在硬盘中依旧存在。
    K、 expires 3m
    为请求的静态资源开启浏览器端的缓存,时间为3分钟。