概述
本站基于WordPress,且服务器位于国外,无法在国内备案。为了保证国内访问速度,有许多可以有效提升速度的方法。本文章将以本站点的实际经历为例,详细介绍本站使用的提升速度的方法,分为Web传输的三个阶段——服务器,传输过程,浏览器——进行阐述,力求速度最大化。
正文
服务器
对于服务器(Linux)端,提升速度的方法有如下几种:提升服务器配置,安装网络加速插件,优化网站的设计。
对于提升服务器配置,主要着重于提升网络带宽(如果你使用的是VPS),处理器效率,和内存。如果是类似于本站的个人站点,单核CPU+2G内存+2G swap便可满足基本需求。
对于网络加速插件,本站安装的是谷歌的BBR拥塞控制算法,各位读者也可以使用锐速,以及BBR的各路魔改/加强版。安装插件主要可以提升TCP连接的传输效率,从而加速网站的网络连接。这些插件的安装教程就不在本文内赘述了,各位可以在百度上自行搜索,安装教程几乎是烂大街的。
关于优化网站的设计,主要是网站HTML,img,js,css相关资源的优化。需要去除冗余的资源,将不需要第一时间加载的资源的加载顺序向后移,确保网站第一时间加载的一定是网页基本结构正常显示所必须的资源,这样便可以快速完成网页加载。针对未加载的资源,可以安排js来单独为其加载。另外,如果服务器本身的访问速度较慢,对于静态资源(如音乐,图片,视频等)建议缓存到CDN内,或者使用速度较快的源。
WordPress默认使用了许多在中国大陆难以访问的API,其头像服务Gravatar在国内也被屏蔽了,严重阻碍了加载速度。这里推荐一个不错的插件:WP-China-Yes,可以实现各个API的国内化,大幅度提升访问速度。
传输过程
对于传输过程,有一个不可忽略的一个方面:CDN。
本站由于不盈利,因此使用的是Cloudflare的免费版CDN,可以小幅提升速度。对于略微阔绰一些的站长,则推荐使用Pro版或者Business版,或者一些国内的CDN。本节以Cloudflare为例。
本站在Cloudflare页面设置里,默认完全缓存了网站的图片资源,这可以很大地提升图片加载速度。各位读者还可以选择开启Rocket Loader,其主要功能是异步加载网页的js文件(不包括直接写在HTML里的脚本)以提高网页加载速度。但注意,如果你写在HTML里的脚本和<head>里包含的脚本需要互相配合,则需关注其加载的顺序问题,否则很容易造成网页报错或者页面显示错误。
在传输层面,建议启用压缩传输,这个Cloudflare里也有设置,可以用gzip或者 Brotli,可以对请求传输的数据进行压缩,缩短传输时间。
浏览器
对于浏览器层面,很重要的一个方面是浏览器缓存 TTL ,也就是浏览器缓存时间。本站使用Cloudflare,设置的TTL是30分钟,这表示当浏览器完全加载一个网页后,其本地缓存将被保存30分钟,在这三十分钟内浏览器将不会请求服务器获取静态资源,使用缓存取而代之。30分钟后TTL过期,若再次访问,浏览器将会重新请求服务器资源,重新计算30分钟。
浏览器缓存TTL对于每个页面都要加载大量重复资源的网站是很有用的,但美中不足是若对服务器上的文件进行了更改,那么在TTL过期(或手动清除本地缓存)之前,浏览器上是看不见更改的,因此对于Web开发很不友好。
结束语
网站加速的终极策略是买更多的服务器,带宽,资源,配置。这样做无需动脑子优化,网站访问速度也能飞起。网站加速的方法千千万,本文只是介绍了冰山一角,并且并不一定适用于所有人。
在最后,感谢各位的阅读。
学习了