随着高流量的到来,站长们除了需要更加注重改善文章质量外,还应更加注重对站点性能的优化,从而给用户带来更好的用户体验(UX)。对站点性能的优化,主要从Web前端网站服务器配置 (Web后端)两方面进行考虑。话不多说,下面将提供一些特别有价值的优化方法,帮助大家更好的优化自己的站点。

评估你的站点体验质量

作为网站所有者,您可能会在后端花费大量时间创建内容、安装更新、筛选评论以及保持网站平稳运行所需的其他任务。但是,大多数用户永远不会看到您网站的后端。

为了更好地从用户的角度查看您的网站,请尝试进入网站的前端并像访问者一样使用它。执行此操作时,请特别注意导航或性能问题。

例如,如果您运行电子商务网站,请尝试完成购买特定产品的过程。您可能会注意到很难找到您心目中的商品,或者商品页面上没有数量选择器。记下这些滞留,以便以后修复它们。

除了导航之外,还要考虑加载每个页面所需的时间,因为用户可能会对缓慢的网站感到沮丧。您还可以使用PageSpeed Insights (web.dev) 等工具检查网站的速度:

本站测试

网站前端

前端无非是在于几个方面,主要是使用简明的页面排版,适当的CSS与JS,以及合理高效的使用缓存机制或是策略等等等等

减少http连接次数

一般一个网页的总请求数不宜超过30个,总加载时间最好少于1500毫秒(1.5秒)。2秒以内的请求数会直接影响页面加载速度,进而影响用户体验。建议方法如下

  • 简化页面排版及设计,减少图片的使用,放弃不必要的页面特效及动画来减少js脚本的使用
  • 采用新一代格式提供图片,例如本站绝大多数图片都采用Webp格式,高效编码WebP 图像比对应的 JPEG 和 PNG 图像要小——文件大小通常减小 25–35%。这可以减小页面大小并提高性能。并且Webp格式兼容大多数浏览器
  • 尽量合并JS和CSS文件,减少独立文件个数

开启Gzip或Brotli压缩来启用文本压缩

开启Gzip或者Brotli可以尽量减少网络总字节数。本站采用Gzip与Brotli并存,源服务器端和CloudFlare CDN侧主要呈现的是Brotli。静态资源托管在Vercel一侧,仅呈现Gzip的压缩效果。

缩减CSS与JavaScript

缩减CSS与JS会极大的提高站点页面的加载效果,但操作不当可能会导致网页排版错乱(CSS)以及网页部分功能错误。具体采用一些JS压缩工具删减冗杂代码如 purecss, uglifyjs 来去除其中的空白字符、注释,最小化变量名等。在使用gzip压缩的基础上,对js内容的压缩能够将性能再提高5%。站长也只是压缩了部分JS,而CSS缩减会导致布局排版发生意外,最好只采取压缩就行。

设置静态资源缓存

给你的HTTP添加Expire头,就是设置静态资源缓存的时间,可以极大的节省网络带宽并提高效率

下面是NGINX设置缓存时间的相关代码示例

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|WebP)$
    {
        expires      365d;
        error_log /dev/null;
        access_log off;
    }
  
    location ~ .*\.(js|css)?$
    {
        expires      365d;
        error_log /dev/null;
        access_log off; 
    }

expires后设置的是过期时间,静态内容应当设置更长的过期时间,CSS及JS文件不常用,可以设置为365天,图片若是频繁更改,可以设置更短的时间,比如站长设置的30d

使用CDN进行网站加速

CDN的全称是Content Delivery Network,即内容分发网络,也称内容传送网络。它是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率,能够解决因分布、带宽、服务器性能带来的访问延迟问题,提升可用性。

本站采用CloudFlare CDN对海外地区进行加速优化,开启了Brotli 压缩,Auto Minify,HTTP/3(使用 QUIC)等功能

错过了NS接入CloudFlare的时代,来试试新方法吧

避免多次网页重定向

为什么要避免多次网页重定向,因为重定向会在网页可加载前引入更多延迟,减慢页面加载速度

网站服务器配置(网站后端)

什么是网站服务器,一般来说,网站服务器(WEB服务器)是指计算机和运行在它上面的服务器软件的总和。

从硬件出发

对于想要长期运营Typecho站点的站长,站点一般选择托管在自己购置的VPS上,这样可以更便捷的维护自己的后端。VPS的配置不必追求得非常高,一般1C1G即可,有预算有基础的可以考虑用腾讯云的香港轻量和搬瓦工的CN2 VPS建站。

这里站长选择的是腾讯云的2C2G香港轻量LightHouse,走的是国内CN2线路(2022年腾讯云香港轻量CN2基本全无,只有骨干网),网络质量十分优良,带宽还是有足足30M,可以吊打国内大多数的小水管。

从软件出发

针对我们小巧的Typecho站点,我推荐大家还是选择短小精悍的NGINX。可能有人问,为什么不是选择更为强大的LightSpeed或是其开源社区版本的OpenLiteSpeed呢?因为LiteSpeed更适合于那些静态页面更多的网站,例如WordPress,LiteSpeed有一个WordPress插件LiteSpeed Cache,这是一个多合一的缓存解决方案,对于WordPress的加速效果要更加凸显。下面是NGINX与LiteSpeed的一些对比

  • LiteSpeed 可以处理多个并发连接,同时使用最少的服务器资源。它依赖于事件驱动的架构,使其比其他Web服务器(如Apache)更快。因此,如果您优先考虑速度,它可能是一个很好的选择。
  • 此外,LiteSpeed与各种托管面板兼容,包括cPanel,Interworx,Plesk,DirectAdmin和VirtualAdmin。
  • 企业版与 Apache Web 服务器功能完全兼容 ,例如 mod_rewrite , . htaccess和mod_security
  • 它针对PHP性能进行了优化,并且比Apache更快地为静态网站提供服务。
  • 它还可以处理突然的流量高峰,使其成为繁忙的网站和电子商务网站的理想选择。
  • 另一个显着的优势是“零停机时间维护”,这意味着您可以重新启动服务器并更新软件,而不会影响网站对用户的可用性。
  • LiteSpeed 提供各种可自定义的安全功能,包括每 IP 连接和带宽限制。

NGINX的主要功能

  • 带有缓存的反向代理
  • IPv6
  • 负载平衡
  • 支持高速缓存的FastCGI
  • WebSockets
  • 处理静态文件、索引文件和自动索引
  • 带有SNI的TLS/SSL

LiteSpeed的主要功能

  • HTTP/3
  • 与Apache和.htaccess完全兼容
  • 支持Bubblewrap
  • TLS V1.3
  • QUIC
  • Redis
  • HTTP/2
  • 兼容HTTP 1.0/1.1
  • 脚本语言:PHP, Perl, Ruby, Python, Java等…
  • 服务器API:LiteSpeed SAPI (LSAPI), CGI, FCGI, AJPv13, Proxy
  • HTTPS
  • IPv4和IPv6
  • 无限的IP和基于名字的虚拟主机
  • 无限的并发连接
  • Brotli压缩
  • GZIP压缩
  • 支持SPDY/2、3和3.1
  • WebSocket代理服务
  • 在Linux、FreeBSD、MacOSX、Solaris上运行

What Are The Best PHP Accelerators? (wp-rocket.me)

参考资料

站长帮 - 专注网站优化与网络推广技术 (zhanzhangb.com)

Nginx与LiteSpeed运行WordPress对比评测 哪个更好 - 搬主题 (banzhuti.com)

最后修改:2022 年 08 月 24 日
如果觉得我的文章对你有用,请随意赞赏