Nginx缓存服务器静态文件

       网站一经上线后,有些文件几乎都不常去更新了,比如css,js,图片等。减少HTTP请求是优化网站的最佳方案之一,我们可以利用nginx缓存服务器的静态文件。 在Nginx中可以使用nginx proxy_cache将用户的请求缓存到本地一个目录,当下一个请求时可以直接调取缓存文件,就不用去请求服务器了。

具体操作 打开nginx.conf配置文件 在http层级加入以下代码

proxy_connect_timeout 10; 
proxy_read_timeout 180; 
proxy_send_timeout 5; 
proxy_buffer_size 16k; 
proxy_buffers 4 64k; 
proxy_busy_buffers_size 256k; 
proxy_temp_file_write_size 256k; 
proxy_temp_path /tmp/temp_dir; proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g; 

在server层级加入以下代码 #要缓存文件的后缀,可以在以下设置。

location ~ .*\.(gif|jpg|png|css|js)(.*) { 
proxy_pass http://appserver ; 
proxy_redirect off; 
proxy_set_header Host $host; 
proxy_cache cache_one; 
proxy_cache_valid 200 302 24h; 
proxy_cache_valid 301 30d;
proxy_cache_valid any 5m; 
expires 90d; 
} 
说明:
1、http设置。
设置临时目录
proxy_temp_path /tmp/temp_dir;
设置缓存目录为二级目录,共享内存区大小,非活动时间,最大容量,临时目录要跟缓存目录在同一个分区。
proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;
 
2、server设置 
设置缓存共享内存
proxy_cache cache_one;
设置http状态码为200,302缓存时间,24h为24小时
proxy_cache_valid 200 302 24h;
设置失期时间,90d为90天
expires 90d;
不进行缓存直接转到后端服务器
proxy_pass http://127.0.0.1:9000;

猜你喜欢

转载自yjph83.iteye.com/blog/2083145