改了行缓存配置,网站直接起飞,太意外了
年纪大了,熬夜是真顶不住。昨晚为了那个破站的加载速度,又是清插件又是压缩图片,折腾到两点,还是那副半死不活的吊样。
正打算关电脑认命,瞟了一眼 nginx.conf 里那段fastcgi_cache配置,总觉得哪里不对劲。
那啥,我是用 WordPress 搭的站,按理说这种标准的 PHP 站点,Nginx 加个 FastCGI 缓存是最基础的提速手段。但我的配置却偏偏躲不开那句:fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=fcgi_cache:100m inactive=60m;咱们都知道正确的打开方式就是给 location ~ \.php$ 加上proxy_cache_key 和try_files……额,扯远了。
但是那一个路径,让我发现了什么?tmpfs!我的服务器好歹有 16G 内存,平时就跑了点静态页,内存闲着也是闲着。那行配置却把这缓存愣是塞在磁盘上。这种IO上的长板短板,能看不出来吗?当时我心一横,直接把 paths 映射到内存盘 /dev/shm,无非就是掉电丢缓存嘛,再重建呗。改完仅仅刷了个页面……好家伙,直接给哥们来了个 TTFB 998ms 跳到 30ms 你受得了吗?!
优化推广这种事吧,整天说什么内容为王,外链为皇,可现在连门卫大哥都知道这已经是旧皇历了。老百姓打开你的站,三秒钟还在转圈圈,你再好的内容它也等于零。这一次神仙配置告诉我是时候考虑点实际的降本提效。

不过,话又说回来,这种内存盘缓存有它的难处,我敢打赌肯定是自己踩过坑。像是当 PHP 进程更新某个页面,比如你发了一条新文章,时间戳会变吧?但这个 nginx 缓存是跟懵头的桥一样认地址的。你得像这个配置:lost 了赶紧改一下 path 参数,写出来 add_header X-Cache-Status $upstream_cache_status; 再自己定个清理缓存的脚本,或者干脆装一个“Cache Enabler”那种自带清缓存的插件。
以前我同事说我就抠门,总折腾些一两毫秒有啥用。那天等真要优化推广专题时,这不就是体感最强烈的超级好例子吗?
兴许就是这么一摆弄,倒是想起了 2012 年初建站的日子。也是一行虚机里改了个 .htaccess,整个站瞬间就硬气了。回看现在很多优化方案堆技术名词,动辄云里雾里的微服务,还是别绕冤枉路了。
顺手提一下吧,有些时候真的不只是 nginx。自己之前在一些老 PHP 应用上用过 opcache, 老架构也能焕发青春。有空是可以都试试的,毕竟折腾是自雇站长的魅力。
小站能稳成这样,颇有种当年威震四方的感觉。老伙计们看开点,哪天花点时间认认真真研读一下配置文件,说不准效果比自己预想的要猛。
- 上一篇: 别吹了,网站提速那点事
- 下一篇: 没有了











鄂公网安备42011602001234号