一、缓存细节
NGINX仅仅默认缓存GET和HEAD客户端请求,在响应头部中(response)Cache-Control被配置为Private,No-Cache,No-Store或者Set-Cookie,NGINX不会进行缓存。
如果你不想源服务器控制是否缓存,也可以在nginx当中配置忽略利用proxy_ignore_headers Cache-Control 指令实现
下面的指令允许多种请求类型缓存
proxy_cache_methods GET HEAD POST;
二、缓存设计优化
proxy_cache_min_uses 设置响应被缓存的最小请求次数。
当缓存不断被填满时,这项设置便十分有用,因为这确保了只有那些被经常访问的内容才会被添加到缓存中。该项默认值为1。
proxy_cache_lock 开启(on|off)此功能时,对于相同的请求,同时只允许一个请求发往后端。
只有这些请求中的第一个被允许发送至服务器。其他请求在第一个请求得到满意结果之后在缓存中得到文件。如果不启用proxy_cache_lock,则所有在缓存中找不到文件的请求都会直接与源服务器通信。
proxy_cache_lock_timeout 为proxy_cache_lock指令设置锁的超时。锁在proxy_cache_lock_timeout指令设置的超时后被释放,默认5s;