改了一行nginx配置,网站飞起来了
自打换了服务器,网站时不时就卡一下。也不是太慢,但总感觉不对劲。那段时间我天天盯着后台,看nginx日志,看PHP-FPM日志,自己都觉得烦。
后来看《nginx高性能优化》那本书,照着它把gzip开了,又调了worker_processes,结果还是那样。真是见了鬼了。
直到有一次,在/tmp下hack,偶然发现php-fpm的unix socket端口死了。然后我注意到nginx的错误日志里有很多upstream报错,连接到fastcgi超过30秒就断。实际看了一下,是fastcgi——不,是php-fpm池子太小了,不过设置过max_children倒是没卡。
我一个初中年纪的服务器管理人员?反正就是网上各种调优文章说开了几个参数就好了,但没提到
后来在nginx的http块里试了try_files,加上缓存静态文件,还是差点。
最后查了半天,是fastcgi_cache_path这个模块,对,就是缓存fastcgi那些php的字节码。我记得以前有人推过这个。然后我就加了两行:
fastcgi_cache_path /var/run/nginx-cache levels=1:2 keys_zone=WORDPRESS:10m max_size=1000m inactive=60m; fastcgi_cache_valid 200 302 60m;
就这两行,配合fastcgi_cache_methods啥的,那是真的,最明显的效果,php解析直接skip了,速度瞬间就起来了。我那个小破博客本来访问一个页面要1.2秒,现在平均调到0.3秒。
我之前一直想不通为何网上那些人都说不推荐这块,因为如果站点内容更新频繁,缓存会导致用户看到的是旧的,所谓cache_key的问题。但像我这种个人站,哪管得了那么多。直接拿来用。
现在访问量大了也不会喘气。那啥,改完之后一刷新,那个酸爽,感觉就像CPU直接坐火箭了。心里那个舒坦。
顺带一提,改成fastcgi_cache之前,把wp-super-cache那些都删了,因为内存型的缓存还是快于file缓存。
整个改动就是那个lnmp环境的nginx.conf里,写上那两行,配合上location /配置加个fastcgi_cache_bypass之类的。
好了,就说这么多吧,有相同折腾的朋友可以参考下。另外我那conf里还有一个奇怪的路径:/etc/nginx/conf.d/enable-php.conf,里面加上fastcgi_cache_path别名就完事了。就这。
- 上一篇: 日IP过万?他们吹的牛我都能戳穿
- 下一篇: 没有了











鄂公网安备42011602001234号