Nginx proxy开启cache缓存

nginx 静态缓存

http 模块配置参考:

http {

proxy_connect_timeout 60; proxy_read_timeout 180; proxy_send_timeout 10; proxy_buffer_size 128k; proxy_buffers 16 128k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; proxy_temp_path /tmp/proxy_temp_dir; // 设置缓存位置 proxy_cache_path /tmp/proxy_cache_dir levels = 1:2 keys_zone = cache_one:200m inactive =1d max_size =30g; // 设置缓存区名称 内存缓存空间大小 1天内容没有访问自动清除 缓存设置大小 ;

....

}
server
{
...
}


location
{
...
}

location 模块

location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
# 缓存时间30天
expires 30d;
# off不记录日志
access_log off;
}

参数解析:

proxy_connect_timeout 
// 服务器连接的超时时间
proxy_read_timeout 
// 连接成功后,等候后端服务器响应时间
proxy_send_timeout 
// 后端服务器数据回传时间
proxy_buffer_size
// 缓冲区的大小
proxy_buffers
// 每个连接设置缓冲区的数量为number,每块缓冲区的大小为size
proxy_busy_buffers_size
// 开启缓冲响应的功能以后,在没有读到全部响应的情况下,写缓冲到达一定大小时,nginx一定会向客户端发送响应,直到缓冲小于此值。
proxy_temp_file_write_size 
// 设置nginx每次写数据到临时文件的size(大小)限制
proxy_temp_path
// 从后端服务器接收的临时文件的存放路径
proxy_cache_path
// 设置缓存的路径和其他参数。被缓存的数据如果在inactive参数(当前缓存为1天)指定的时间内未被访问,就会被从缓存中移除

参数解析:

expires d;  //表示缓存天
expires h;  //表示缓存小时
expires max;  //表示缓存10年
expires -1;  //表示永远过期。

如果设置为-1在js、css等静态文件在没有修改的情况下返回的是http 304,如果修改返回http 200
http 304:自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。
http 200:服务器已成功处理了请求,这表示服务器提供了请求的内容。

如果不想让代理或浏览器缓存,加no-cache参数
add_header Cache-Control no-cache;
这样浏览器F5刷新时,返回的就是http 200,而不是http 304
原文地址:https://www.cnblogs.com/sharesdk/p/7851564.html