Nginx的静态资源缓存配置

原创文章转载请注明来源:https://blog.csdn.net/weixin_41756573/article/details/88814547

Nginx静态资源缓存

问题的产生:每个页面都会映入css、js等静态资源文件
解决的问题:避免每次请求,服务器都会处理静态资源(css,js,图片)所带来的压力
解决步骤:修改nginx.conf的相关配置
1.在http中做全局配置
#临时文件夹,用于存放暂时存放文件
proxy_time_path d:/nginx-time;
#设置缓存目录
proxy_cache_path d:/nginx-cache levels=1:2 keys_zone=babytun-cache:100m inactive=7d max_size=20g
缓存目录的参数解析
-levels 代表采用1:2,也就是以两级目录的形式保存缓存文件(缓存文件就是指静态资源css、js),同时文件名进行了MD5编码
-keys_zone 定义缓存的名称以及内存的使用,名称为babytun-cache,在内存中开辟100m(兆)交换空间
-inactive=7d 如果某个缓存文件超过7天没有被访问,则删除
-max_size=20g 代表文件夹最大不能超过20g,超过后会自动将访问频率最低的资源缓存文件删除
2.在server的location中做如下配置
#利用正则表达式匹配url,匹配成功的则执行内部逻辑
#~*不区分大小写 ~区分大小写
#woff 是一种字体 
location ~* \.(gif|jpg|css|png|js|woff)(.*){
    proxy_pass http:服务器池名称; #使用该服务器池(服务器池名称)进行后端处理
    proxy_set_header Host $host; #请求头,代表原始的主机是多少
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_cache keys_zone的名称; #将缓存写入到proxy_cache_path定义的文件夹中
    proxy_cache_valid 200 302 24h; #proxy_cache_valid的优先级大于inactive,如果静态资源的响应状态码为200、302(暂时性重定向)缓存文件有效期为一天
    proxy_cache_valid 301 5d; #301永久性重定向
    proxy_cache_valid any 5m; #any代表其他情况
    #浏览器的缓存时间
    expires 90d;
}

server中location的执行顺序 正则表达式的执行顺序大于 /

你可能感兴趣的:(nginx)