我怎样将网站的加载时间减少 67%?( 二 )


所有这些静态文件生成器都满足这些需求 。
因此,这让选择变得困难起来 。我有一个 JeremyMorgan.com 版本,在所有的平台上使用这三个生成器运行都没有问题 。我可以自定义一些东西,它们都能快速地构建好页面 。但我必须选择一个 。
我最终选择了 Hugo ,因为我害怕陷入另一个依赖地狱 。Gatsby 很酷,也很强大,但对我所做的事情来说似乎太复杂 。它在 JavaScript 生态系统中也有大量的依赖,众所周知,JavaScript 生态系统有时会突发奇想做出破坏性的更改 。
Pelican 依赖于 Python 生态系统,而 Python 生态系统不那么古怪,所以 Pelican 排第二位 。而 Hugo 是从可执行文件构建的 。因此,即使它被放弃或依赖关系被破坏,我也总是可以使用可执行文件来生成网站,直到我找到一个替代方案 。
这就是我选择 Hugo 的原因 。它有一个简单的保护层,可以让你免受依赖关系被破坏的影响 。并不是每个人都关心破坏性更改和向后兼容性 。项目被放弃,这是使用开源软件的一部分代价 。Hugo 简单、可移植,而且是用 Golang 编写的,所以如果它被抛弃,我可以 fork 或修改它 。
为什么选择 Netlify
我怎样将网站的加载时间减少 67%?

文章插图
 
下一个问题是在哪里托管它 。当服务器崩溃时,我决定把静态文件转移到一个Amazon Lightsail设置中 。这个过程超级简单,而且非常快,我知道,另找一个托管服务器不会更好 。
几乎没有理由在 2020 年建立一个完整的 Linux 服务器来托管一个静态网站 。
我对于托管设置的要求如下:
  • 必须快
  • 必须安全
  • 必须能轻松部署
因此,我考虑了以下选项:
  • 安装了 Nginx 的另一台 Linux/FreeBSD 服务器
  • Azure Windows VM with IIS
  • AWS Amplify 设置
  • Netlify
我开始准备服务器并进行测试 。我发现,无论如何优化,托管的 Web 服务器都无法跟 AWS 或 Netlify 的速度相比 。这部分是由于边缘服务器 。我在以下地点测试速度:
  • 波特兰,俄勒冈州
  • 杜勒斯,弗吉尼亚州
  • 奥兰多,佛罗里达州
  • 达拉斯,德克萨斯州
  • 旧金山,加利福尼亚
  • 圣保罗,巴西
  • 伦敦,英国
  • 玫瑰山,毛里求斯
我在世界各地做了抽样测试,但这些是我最关注的城市 。我想看看,所有这些地方中哪里最快 。我选择了一个有很多文字和图片的页面 。结果让我大吃一惊 。
托管的 FreeBSD 服务器和 IIS 服务器速度很快,但在我离开美国后,与 Netlify 和 AWS 就不在一个级别了 。我希望所有的网站访问者都能快速浏览,而不仅仅是我身边的人 。这是我重点考虑的一个因素 。
比速度,Netlify 几乎在每个地区都是赢家 。
经过一天中不同时段的长时间测试,Netlify 胜出,AWS Amplify 与之相近 。如果我在 AWS 的优质资产上花上一大笔钱,我相信也能取得好成绩,但我这个网站不赚钱,所以那不是我的选择 。
看看我的要求,Netlify 全部满足:
  • 速度快(它最快);
  • 安全(据我所知它是安全的);
  • 工作流异常简单 。
我将我的 Github 库连接到 Netlify 。我可以提交到任何分支来存储更改 。我能提交到一个开发分支,我可以把它推送到预览 。当我把它推送到主干时,它会自动发布到 JeremyMorgan.com 。
为什么加载速度如此之快?以下是我的网站加载速度如此之快的原因:
  • 它是一个静态网站;
  • 只有 HTML、JavaScript 和 CSS;
  • 它比以前轻量化;
  • 使用了最少的 CSS 和元素;
  • 经过优化的 JPEG 图片;
  • 发布之前会压缩;
  • Netlify 真得很快,在哪都很快 。
综合上面这些因素,我的网站主页加载时间不到一秒,而带有大量图片和文本的页面大约在三秒内加载完毕 。超级快 。
从用途方面说,网站快速加速非常重要 。因为这个网站会提供关于开发的教程和信息,我不希望人们等半天才能看到 。我希望,即使在互联网接入较差的国家,这个网站也能正常使用 。无疑,Hugo 和 Netlify 帮我实现了这个目标 。

【我怎样将网站的加载时间减少 67%?】


推荐阅读