Nginx 配置调优:让个人站点快人一步

对博客 Nginx 配置进行全方面调优:Gzip压缩、缓存策略、HTTP/2、连接复用等,TTFB 从300ms降到30ms。

最近对博客做了一次全面的 Nginx 调优,TTFB 从平均 300ms 降到了 30ms 以下,记录一下关键步骤。

基础优化:Gzip 压缩

gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml;

对文本类资源压缩效果明显,通常能减少 60-70% 的传输体积。

缓存策略

location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
    expires 30d;
    add_header Cache-Control "public, no-transform";
}

静态资源设置长期缓存,减少重复请求。

HTTP/2 和多路复用

如果还没升级到 HTTP/2,强烈建议升级。配置很简单:

listen 443 ssl http2;

HTTP/2 的多路复用特性可以让浏览器在单个 TCP 连接上并发请求所有资源,速度提升显著。

连接keepalive

upstream backend {
    server localhost:3000;
    keepalive 64;
}

location /api/ {
    proxy_pass http://backend;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
}

启用 upstream keepalive 可以复用后端连接,减少连接建立的开销。

最终效果

用 WebPageTest 测试,优化前后对比:

  • 首字节时间:300ms → 25ms
  • 完全加载时间:1.8s → 0.9s
  • 请求数量:减少约 40%(缓存生效后)

大部分优化不需要额外付费,只要合理配置 Nginx 就能做到。

有条件的话,配合 CDN 使用效果会更好——Cloudflare 免费版就够用了。