个人站点提速实战:Redis 对象缓存 + 页面静态化,老机器也能跑出秒开

很多个人站点跑在 1核2G 的小机器上,页面打开要三四秒。大多数时候瓶颈不在带宽,而在「每次访问都要查数据库、渲染模板」。把这两件事砍掉,同样的机器能有几倍的提升。

第一层:对象缓存

以 WordPress 为例,装一个 Redis 对象缓存插件(如 Redis Object Cache),把数据库查询结果缓存到 Redis 里。重复访问时直接命中内存,不再查库。

关键配置有两个:

  • maxmemory:按内存的 1/4 分配,比如 2G 机器给 512MB
  • maxmemory-policy:设 allkeys-lru,内存满了淘汰最久未用的

改完 redis-cli info stats 能看到命中率,正常应该在 85% 以上。低于 70% 说明缓存策略有问题。

第二层:页面静态化

缓存查询还不够,模板渲染本身也耗时。这一步要把「最终生成的 HTML」缓存起来。

两种做法:

  1. 插件方案:WP Super Cache、LiteSpeed Cache,生成静态 HTML 直接返回
  2. 反向代理方案:Nginx 加 fastcgi_cache 或 proxy_cache,缓存层前置

Nginx 缓存配置的核心参数:

proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=mycache:10m max_size=1g inactive=60m;

注意一点:登录用户、购物车、评论区不要缓存,否则会出现「看到别人的数据」这类严重问题。用 cookie 判断跳过。

第三层:静态资源

图片、CSS、JS 这些不常变的东西,交给 CDN 或者设置长期缓存头:

location ~* \.(js|css|png|jpg|webp|woff2)$ {
    expires 30d;
    add_header Cache-Control "public, max-age=2592000";
}

再配合图片压缩(WebP 格式、适当分辨率),首页体积能从几 MB 降到几百 KB。

第四层:数据库

顺手做两件事:

  • 给常用查询字段加索引(比如 wp_posts 的 post_status + post_type 组合索引)
  • 定期清理修订版本、垃圾评论、过期 transient

老站点往往积累了几千条修订版本,数据库膨胀到几百 MB,查询自然慢。

效果参考

一套组合拳打下来,同样 1核2G 的机器:

  • 首页 TTFB:从 800ms 降到 80ms
  • 首屏加载:从 3.5s 降到 0.9s
  • 并发能力:从几十涨到几百

最后提醒

优化有顺序:先缓存,再静态化,最后才是硬件升级。很多人一卡就升配置,其实是花冤枉钱——数据库查询没优化,换多大的机器都白搭。

© 版权声明
THE END
喜欢就支持一下吧
点赞16 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容