去年一个客户给我打电话,真的是惊恐万状。他的代理商营销网站在活动中途宕机了。不是服务器崩溃,也不是 DDoS 攻击。Netlify 在周二下午因为他超出了免费层限制而限制了他的带宽,而他的账单周期还要三周才能重置。他从 2021 年以来一直在使用 Starter 计划,从未想过这个问题。说实话,我也没想过,直到那通电话。
那次事件让我坐下来,实际上制定了 Netlify 免费层提供的内容、它在哪里悄悄切断你的内容,以及升级到 Pro 是否值得,或者是否有更聪明的解决方案。在 Seahawk 的整个生命周期中构建和托管了超过 12,000 个网站后,我通过 Netlify 完成的项目足以让我分享一些有价值的意见。
Netlify Starter 计划实际包含的内容
让我们具体一点。Netlify Starter 计划是免费的,不需要信用卡,每个团队可以包含一个成员。你能得到:
每月 100GB 带宽,跨所有网站
每月300分钟构建时间,在所有项目间共享
Netlify Functions:每月125,000个请求和100小时运行时
表单:每月100次表单提交
1个并发构建(其他一切都排队)
从Git持续部署(GitHub、GitLab、Bitbucket)
即时回滚
自定义域名,通过Let's Encrypt自动HTTPS
Netlify Edge网络(CDN)包含
Pull请求的部署预览
这个列表看起来令人印象深刻。对于个人作品集、小型宣传网站或爱好项目来说,它确实令人印象深刻。仅HTTPS自动化这一项,以前需要我每个网站手动配置20分钟。现在完全不费力。
但请注意营销文案中缺少的内容:这些限制在你整个团队账户中是共享的。一个账户,所有网站,一个配额池。
带宽限制真正发挥作用的地方
100GB听起来很大。但不一定总是很大。
这样想。一个合理优化的网站,平均页面大小为2MB,如果你没有正确压缩图片,这个数字会快速增长,每500个访客就会消耗1GB。扩展到50,000个月度访客,你就会用完100GB。这还只是一个网站。
我在2022年为一个美食旅行客户做过一个Gatsby博客项目。内容很好,背后有适当的SEO工作。该网站开始每月吸引约60,000个会话,我们对此感到兴奋,直到我注意到带宽达到85GB,而月份还有九天。我们相当快地把他们迁移到了Netlify Pro。
人们没有考虑到的是:Netlify计算的是出站带宽,意味着访客下载的每一个资源。未优化的英雄图片、嵌入字体、没有被正确代码分割的JavaScript包,所有这些都算。在你在任何地方托管之前,通过WebPageTest运行你的网站,把页面大小控制住。这个单一的习惯已经救了我几个客户免于不必要的升级。
当你达到限制时会发生什么
Netlify不只是让你变慢。他们向你的访客展示一个Netlify品牌的错误页面而不是你的网站。这不优雅。没有足够提前期的警告邮件让你真正采取行动。网站就宕机了。这就是我客户遭遇的情况。
你可以在仪表板中设置支出通知,我强烈建议从第一天就做这个,但它们不一定总是以足够的缓冲被触发。如果你的网站正在获得真实流量,每周检查你的带宽使用情况。
300构建分钟问题
这是首先困扰机构的限制,而不是带宽。
一个网站 300 分钟看起来还不错。但如果你在一个 Netlify 账户下管理五到十个客户项目,每个都有在每次推送时触发的 CI/CD 流水线,你会在月中就用完配额。Next.js 或 Gatsby 在内容丰富的网站上的构建可能需要 3 到 15 分钟,取决于你的缓存配置有多好。
这是我在 Seahawk 对免费层项目的做法:
正确启用构建缓存。如果你配置得当,Netlify 会在构建之间缓存 node_modules 目录。不要跳过这一步。在重复部署时可以将构建时间减少 60-70%。
