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