nginx开启静态资源缓存

静态资源的缓存是CDN非常重要的功能,nginx作为反向代理的前端服务器时配置静态资源缓存非常简便,步骤如下。在Ubuntu 14.04 / nginx 1.9.3 环境下测试通过。

编辑/etc/nginx/nginx.conf文件,在http语句块中加入一下两句:

proxy_cache_path /home/www/cache levels=1:2 keys_zone=cache_one:10m max_size=1g inactive=60m;
proxy_temp_path /home/www/cache/temp;

其中/home/www/cache为缓存文件存放的路径,cache_one为这个缓存块的名字,max_size=后的1g为缓存块的大小。如果缓存文件存满1GB时,nginx会自动从前往后删除旧缓存。

在nginx站点配置文件(默认 /etc/nginx/sites-available/default)中找到反向代理的server语句块,新增以下语句:

location ~ .*\.(js|css|gif|jpg|jpeg|png|bmp|swf|flv|html|htm|woff)$ {
            proxy_pass 源地址;
            proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Accept-Encoding "";

            # Cache
            proxy_cache cache_one;
            proxy_cache_valid 200 304 12h;
            proxy_cache_valid any 10m;
            proxy_cache_key $host$uri$is_args$args;
            add_header  Nginx-Cache "$upstream_cache_status";
            expires 10d;
        }

保存后重启nginx即可。