wp性能优化

系统

php

缓存插件

WP Super Cache 、 W3 Total Cache 、 WP-Rocket

数据库

意外关机很有可能导致数据库损坏,这个应该是常识.MySQL引擎建议使用InnoDB,崩溃恢复要比MyISAM健壮.

待整理

1、WordPress 自己很多细节是需要优化的,譬如每次访问都会运行一次的 WP-Cron,还有各种不适合中国特色的东西(Emoj 表情)等等,自己按照需求琢磨、找解决方案。

主机选择的时候,一个高性能的 SSD 硬盘也很重要!!!

2、其次建议把数据库丢出去,国内的云服务商也都配有自己的专门的数据库服务。

3、动静分离:图片、CSS、JS 这些文件都交给 CDN 来处理好了,比较推荐的是 @七牛云 ,我们这么多年一直都是用它。

4、缓存:其实 WP Super Cache 是他们自家开发的,功能虽然不多,但是效能好,复杂一点的推荐 W3TC。开启静态化缓存,加上 Memcached 或者 Redis 一般就足够了,实在巨型的访问量,那就考虑 Varnish 之类吧。

其实 Memcached 和 Redis 很多云主机也有专门的服务,但是费用较高,而且量不大其实性能还远不如本地,本地想要快的思路还是尽可能把缓存放到内存里来处理。

5、如此处理之后,100M的带宽绝对浪费,因为图片等静态已经交给 CDN,自己服务发送的数据其实很少。实在还觉得慢,那就尝试再套一层 CDN,并且启用均衡负载、弹性伸缩应对高峰吧。

是不是PHP-FPM工作进程数 pm.max_children 开太多了,导致系统内存不足,然后http和ssh服务都被Linux被kill关闭了.

1个核心1G内存这种低配VPS就不要开那么多PHP-FPM工作进程了,开4个就差不多了:

pm = static
pm.max_children = 4

WordPress基本都是短连接,开太多进程反而没用,占用内存增加上下文切换反而降低性能,毕竟CPU核心数就1个.

另外,上PHP7,把opcache打开,能明显提升WordPress性能.我在本机(Ubuntu i5-3230M)测试,PHP7+opcache跑WordPress首页,一个请求耗时30ms左右,已经不算慢了.

对于那些存在明显IO阻塞的操作,就不要在PHP-FPM里跑了,建议基于PHP的Swoole引擎来写.

1. 运行最新版的操作系统及软件。最新版的操作系统、软件不仅修复安全bug,还有明显的性能提升。托管本站vps的操作系统是运行5.5内核的CentOS 7(刚买时CentOS 8还未发布,不然肯定上8),启用BBR模块、从remi源安装php 7.4、redis 5最新版、从Nginx、MariaDB官方源安装的最新版Nginx、MariaDB;

2. php启用opcache模块,session存储到redis,nginx和php-fpm通过unix socket通信;

3. Nginx启用gzip压缩,静态资源缓存时间设置为最大;

4. WordPress安装缓存插件,例如W3 Total Cache、 WordPress Super Cache、Autoptimize等,本站用的Autoptimize,可以删除谷歌字体;

5. 移除wp-login.php,xmlrpc.php的直接访问。可以通过Redirection等插件实现,但本人更推荐通过Nginx直接将这两个地址重定向,操作请参考 WordPress防止密码爆破。这个做法不仅安全,避免暴力破解,还能避免无聊/恶意的人消耗CPU;

6. 启用Nginx的缓存,强烈推荐,操作指南: 使用Nginx缓存加速WordPress站点

7. 禁用WordPress自带的cron任务,改成crontab执行。

本文原创,商业转载请联系作者获得授权,非商业转载请注明出处。

评论

发送评论 编辑评论


                        

待分类分类热门文章

标签热门文章排行

☛免责声明 ☛本站使用教程
Theme Argon With Ry-Plus By 清欢
我的第15772位朋友,历经88540次回眸才与你相遇