node服务配置nginx缓存,css,js,png,jpg使用nginx缓存,加速访问
1.创建缓存文件目录
使用mkdir命令创建缓存文件存放目录
mkdir /data
mkdir /data/next-cache
2.nginx.conf的http设置部分添加 proxy_cache_path的设置,server 部分添加或修改location设置
http {
proxy_cache_path /data/next-cache levels=1:2 keys_zone=next-cache:10m max_size=10g inactive=1d;
server {
listen 80;
server_name xxx.xxx.com;
location /{
access_log off;
proxy_pass http://localhost:3000;
add_header Cache-Control max-age=no-cache;
proxy_cache next-cache;
proxy_cache_valid 12h;
proxy_ignore_headers Set-Cookie Cache-Control;
proxy_hide_header Cache-Control;
proxy_hide_header Set-Cookie;
}
location ~*\.(css|js|png|jpg|jpeg|gif|gz|svg|mp4|ogg|ogv|webm|webp|htc|xml|woff)$ {
access_log off;// 不打印访问日志
add_header Cache-Control max-age=86400;
proxy_pass http://localhost:3000;
}
}
}
配置后可以通过暂停node服务来验证缓存效果
解释(自定义配置必备)
proxy_cache_path /data/next-cache levels=1:2 keys_zone=next-cache:10m max_size=10g inactive=1d;
proxy_cache_path----缓存目录:/data/next-cache
levels=1:2----采用2级目录结构,不必调整
keys_zone=next-cache:10m----缓存空间名:next-cache,内存空间为10M
max_size=10g----缓存文件可以占用的最大空间:10G
inactive=1d----默认过期时间1天,同inactive=24h
add_header Cache-Control max-age=no-cache;
proxy_cache next-cache;
proxy_cache_valid 12h;
proxy_ignore_headers Set-Cookie Cache-Control;
add_header----不设置强制缓存时间,协商缓存,使用 Last-Modified。no-cache 会发起往返通信来验证缓存的响应,但如果资源未发生变化,则不会下载,返回304
proxy_cache----keys_zone的值
proxy_cache_valid----过期时间
proxy_ignore_headers----忽略Cache-Control的请求头控制,依然进行缓存