nginx静态资源优化关键在于减少冗余传输、降低重传、延长缓存周期及提升内核效率:启用gzip(on+min_length 1024+level 5/6+vary on)、预压缩(gzip_static on)、长缓存(immutable+expires)、零拷贝(sendfile on)与tcp优化(tcp_nopush on)。

提高 Nginx 静态资源服务的数据吞吐质量,关键不是堆带宽,而是让每字节传得更稳、更少、更久——减少冗余传输、降低重传概率、延长缓存信任周期,并确保内核层传输效率不打折扣。
压缩文本资源,直接削减出口体积
HTML、CSS、JS、JSON 等文本类资源压缩率普遍达 60%–80%,是最高效的带宽节省手段:
- 启用 gzip 并设合理阈值:gzip on; gzip_min_length 1024;(避免小文件越压越大)
- 精准指定类型:gzip_types text/css application/javascript text/html application/json;(不盲目开 *)
- 压缩等级选 5 或 6:gzip_comp_level 5;(平衡 CPU 开销与压缩收益)
- 开启 gzip_vary on;,确保 CDN 或代理能正确识别并缓存压缩响应
用预压缩替代运行时压缩
构建阶段生成 .gz 文件(如 app.js.gz),Nginx 自动匹配返回,零 CPU 开销换带宽节省:
- 确保 .gz 文件与原文件同名同目录,权限一致
- 配置 gzip_static on;
- 配合 gzip_http_version 1.0; 或更高版本,兼容各类客户端
长缓存 + immutable 标识,从源头压请求量
带宽被反复拉取同一资源持续占用,而非单次传输慢。重点是让浏览器和中间节点“记住且信任”:
- 对带哈希/版本号的资源(如 main.a1b2c3.js):expires 1y; add_header Cache-Control "public, immutable";
- 对无哈希的通用资源(如 favicon.ico):expires 30d;
- 禁用纯静态 location 的日志:access_log off;(避免日志 I/O 挤占磁盘与网络带宽)
启用零拷贝与 TCP 包调度优化
减少内核搬运和网络碎片,让每字节走得更稳、更满:
- 强制启用:sendfile on;(跳过用户态,直通 socket)
- 搭配:tcp_nopush on;(合并小包,填满 TCP 窗口)
- 对高吞吐场景,可调大 tcp_nodelay off;(允许 Nagle 算法协同 tcp_nopush)











