昨天通过一个网页测速网站得知,我的网站加载时间居然长达20秒,惊得我下巴都掉下来了。如何加快网页加载速度呢?我使用了一个插件:WPJAM。

一、开启Memcached内存缓存优化

开启Memcached的条件是对服务器有完全的操作权限,云服务器可以有,但是虚拟主机就很麻烦了。

安装memcached服务和php-memcached扩展

我使用的lnmp.org搭建web环境,它提供了安装Memcached服务的脚本:

1
sudo ./addons.sh install memcached

或者直接使用:

1
sudo ./addons.sh

然后选3:

安装Memcached

然后选2,安装php的memcached扩展:

安装PHP-Memcached扩展

安装opcache服务

1
sudo ./addons.sh install opcache

通过WPJAM插件开启Memcached缓存

安装了opcache、memcached、php-memcached之后,再将WPJAM插件中的 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下即可启用Memcached缓存了。

在后台菜单的WPJAM系统信息中,可以查看memcached运行状态:

WPJAM-Memcached

开启Memcached内存缓存优化后,每次访问网站,都会优先到内存中读取结果,没有命中缓存的话再去数据库查询,可以有效加快网页打开速度。

二、动静资源分离

由于我的云服务器是1M小水管,理论最大下行速度是128K/S,同样是影响网页打开速度的因素之一。我通过WPJAM插件的CDN加速功能,对网站静态内容进行了分离。对象存储和CDN我都是用的腾讯云

配置对象存储和加速域名

在腾讯云的对象存储设置里,新建一个存储桶。存储桶的基础设置里,找到回源设置。我的配置如下:

腾讯云CDN设置

回源地址就是源站地址,由于我的原站开启了跳转HTTPS,所以回源协议强制HTTPS,减少重定向次数。

然后在域名管理里,绑定自定义加速域名,我用的cdn.huanzhi.wang,CNAME解析到腾讯云提供的地址。国内使用自定义加速域名要求域名备案。然后为了开启全站HTTPS,在腾讯云申请一个免费SSL证书,绑定到CDN中,并开启HTTPS和HTTP2.0。

腾讯云https设置

腾讯云每个月会有10G的免费CDN流量包,对于个人小站来说完全够用了。

配置WPJAM Basic插件

在WPJAM Basic插件的CDN加速页面,设置CDN域名为刚才绑定的自定义加速域名。

WPJAM-CDN

然后在本地设置中,设置需要缓存静态文件的扩展名、目录以及本地域名。

WPJAM-本地设置

配置好以上设置后,静态文件分离就完成了。

工作流程及原理

WPJAM插件将静态文件的地址替换为CDN地址,当第一次访问网页时,浏览器向CDN发出GET请求,CDN在COS存储中找不到该文件,于是回源站抓取资源并保存到对象存储中。第二次访问网页,则直接在COS中读取数据。

静态文件分离有效的降低了服务器负债及带宽消耗,至于腾讯云的对象存储和CDN费用,按我现在这个访问量,一年可能就十几块钱吧。

三、上传图片自动压缩

我用的是TinyPNG开发的Compress JPEG & PNG images插件,这个插件可以在上传图片时,自动将所有大小的图片在Tinypng网站上进行压缩,免费版有每个月500张图片的额度。

TinyPNG

如果每张图片上传后被WordPress压缩成3种大小,则每个月可以上传167张图片。自动压缩的好处是非常方便,不用自己每次上传图片的时候来手动压缩和优化了。图片的大小压缩之后,一是省流量、二是省空间。

四、禁用Google字体

WordPress默认的后台和主题都是用了谷歌在线字体,但是在中国大陆访问速度相当慢,于是,需要替换国内源或者直接禁用。我选择了直接禁用,使用Disable Google Fonts插件,安装好无需任何配置,就把谷歌字体禁用了。

DisableGoogleFonts


经过这次速度优化以后,我的网页打开速度在没有本地缓存的情况下,基本能达到3秒以内了,主体内容加载时间在500ms左右。这个速度我也比较满意了,我的要求也不高,不追求那种极致到秒开的速度。


本站由 @澄哥 使用 Stellar 1.27.0 主题创建。
蜀ICP备19037348号-2川公网安备51160202511796号
本页总阅读量本站总阅读量本站访客数人次
本站已安全运行:

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。