Araneida · 笔记

给静态站点加 gzip 和缓存:nginx 配置备忘

2026-07-18 · nginx

静态站点没什么可优化的,无非少传点、少请求点。少传点靠压缩,少请求点靠缓存。

gzip on;
gzip_comp_level 5;
gzip_min_length 512;
gzip_types text/plain text/css application/json
           application/javascript application/xml image/svg+xml;

location ~* \.(css|js|svg|png|ico|woff2)$ {
    expires 7d;
    add_header Cache-Control "public";
}

压缩级别别拉满,5 和 9 的体积差距通常只有几个百分点,CPU 消耗却差不少。小文件压不动,还要多一次 判断,所以 gzip_min_length 设成几百字节比较合适。

缓存要按内容类型来分:图片、字体、CSS、JS 可以放心给一周以上;HTML 最好短一些,或者干脆不缓存, 否则改了页面用户看不到,还得靠改文件名来刷新。

另外注意 gzip_types 不会自动包含 text/html,不过 html 默认就在压缩范围里, 不用重复写。想看效果用 curl -I -H "Accept-Encoding: gzip" 看响应头里的 Content-Encoding。

← 返回笔记列表