Nginx 缓存控制配置的用途说明、详细介绍,以及更精细控制的写法
- This topic has 0 个回复, 1 个参与人, and was last updated 2 天, 4 小时 前 by
追光.
正在查看 0 条回复
- 作者帖子
- 2025年7月9日 - 下午5:58 #254
追光管理员Nginx 缓存控制配置的用途说明、详细介绍,以及更精细控制的写法
📌 作用:
1. 匹配静态资源:此规则匹配所有 .gif, .jpg, .jpeg, .png, .bmp, .swf 结尾的资源请求。
2. 设置强缓存:
• Cache-Control: public, max-age=31536000, immutable 表示这些资源可以被 浏览器和 CDN 缓存,最大缓存时间为 1 年(31,536,000 秒)。
• immutable 表示该资源不会被修改,浏览器即使刷新页面也不会重新请求,除非 URL 改变(如加版本号)。
3. 关闭日志:
• error_log /dev/null; 与 access_log /dev/null; 是为了减少这些静态资源的日志写入,降低磁盘 I/O 与日志体积。🧩 精细时间控制写法:
如果你希望不同类型的文件使用不同缓存策略(如图片缓存一年、字体缓存半年、JS/CSS缓存1天),可以如下分开设置:
# 图片 location ~* \.(gif|jpg|jpeg|png|bmp|swf)$ { add_header Cache-Control "public, max-age=31536000, immutable"; # 1 年 error_log /dev/null; access_log /dev/null; } # 字体 location ~* \.(woff|woff2|ttf|otf|eot)$ { add_header Cache-Control "public, max-age=31536000, immutable"; # 1 年 error_log /dev/null; access_log /dev/null; } # 视频 location ~* \.(mp4|webm|ogv)$ { add_header Cache-Control "public, max-age=31536000, immutable"; # 1年 error_log /dev/null; access_log /dev/null; } # 音频 location ~* \.(mp3|ogg|wav)$ { add_header Cache-Control "public, max-age=31536000, immutable"; # 1年 error_log /dev/null; access_log /dev/null; } # CSS/JS location ~* \.(css|js)$ { add_header Cache-Control "public, max-age=31536000, immutable"; # 1 年 error_log /dev/null; access_log /dev/null; }
关于时间的写法案例:
# 图片缓存:1年 location ~* \.(png|jpg|jpeg|gif|ico|webp|bmp)$ { add_header Cache-Control "public, max-age=31536000, immutable"; } # 字体缓存:半年 location ~* \.(woff|woff2|eot|ttf|otf)$ { add_header Cache-Control "public, max-age=15768000, immutable"; # 6 个月 } # JS 和 CSS 缓存:1 天 location ~* \.(js|css)$ { add_header Cache-Control "public, max-age=86400"; # 1 天 }
- 作者帖子
正在查看 0 条回复
- 在下方一键注册,登录后就可以回复啦。