如何防止网站瘫痪

防止网站出现故障需要多方面的策略和努力,但能够降低与停机相关的转化损失和 SEO 处罚的风险,这就是值得的。

学习目标

阅读本文后,您将能够:

  • 了解什么是停机时间以及为什么它很重要
  • 概述出现停机时间的原因

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

什么是停机时间?

在网络上,停机时间是指网站对任何或所有用户都不可用的时间段。在停机期间,尝试访问该站点的用户可能会被重定向到错误页面,或者看到由他们的浏览器创建的错误页面。这些停机时间会给网站带来迅速的惩罚,包括转化损失,甚至搜索引擎优化 (SEO) 排名下降。

为什么网站会关闭?

  • 主机维护:网络主机有时需要对网站文件所在的服务器进行维护。这种维护有时可能需要停机。对于一个好的主机,这种维护时间应该提前宣布、应该尽可能短,而且应该安排在活动少的时间段。
  • 服务器过载:Web 服务器一次只能处理这么多的请求,而流量高峰可能会使服务器不堪重负,从而阻止用户访问该站点。在某些情况下,托管公司将使用多租户,这意味着他们在单个服务器上托管多个站点。使用多租户,一个站点的流量高峰可能会导致另一个不相关站点产生停机时间。
  • 硬件故障:尽管托管服务器通常保持在受保护和受控的环境中,但有时该硬件仍可能出现故障。风扇可能会损坏,存储磁盘可能会损坏,停电或自然灾害可能会导致整个数据中心瘫痪。如果没有备份计划,这些硬件故障可能会造成持续的停机时间。
  • 恶意攻击:网站还可能因分布式拒绝服务 (DDoS) 和其他类型的攻击而脱机。DDoS 攻击旨在故意用流量淹没站点,以导致拒绝服务。更邪恶的攻击涉及使用暴力破解或其他方式来访问与该站点相关的域名注册商或托管帐户。然后攻击者使用这个伪造的授权来关闭或修改网站。
  • 编程错误:网站的功能取决于正确执行的代码,即使代码中的一个错误也可能导致网站瘫痪。在满足某些罕见条件之前,某些 bug 不会被触发;这些被称为“边缘情况”。这些边缘情况错误可能要等到错误代码被实时推送到站点后的几个小时甚至几天后才会出现。
  • 域名过期:当网站的域名注册到期后,注册商将切断该网站的 IP 地址和域名之间的链路。一旦发生这种情况,用户将不能再访问使用该域名的网站。

如何避免停机时间

虽然很难实现 100% 的正常运行时间(甚至 Google 和 Facebook 也因各种问题而偶尔遇到停机时间),但网站所有者可以采取措施尽量缩短网站经历的停机时间。以下是几个关键策略。

挑选合适的主机和托管计划

虽然计划外的服务器维护和硬件故障等问题可能会影响任何 Web 主机,但有些主机的正常运行时间记录会优于其他主机。可以在网上找到不同托管服务提供商的正常运行时间比较,选择具有良好正常运行时间记录的主机将有助于提高网站保持正常运行的机会。选择提供良好监控服务的主机也很重要;减少停机时间的第一步是知道停机时间的存在。

应避免具有硬性使用限制的托管计划。一些主机将对其用户应用每日或每月带宽限制。这意味着即使是不足以使服务器过载的流量高峰,也可能导致主机暂停帐户并使站点脱机。为了避免停机时间,具有无限带宽或对带宽超额实行按需付费的托管计划才是最合理的。

一些主机还提供故障转移(或“冗余”)计划。这意味着,如果托管该站点的服务器出现故障,该主机将自动开始从另一台服务器托管该站点。这是针对与托管相关的停机时间的良好保护。应该注意的是,一个好的故障转移计划将利用不同物理位置的服务器。如果故障转移服务器与原始主机都位于同一个数据中心,那么在影响整个数据中心的中断(例如停电)期间,它们将无济于事。

启用 DDoS 防护

许多组织在遭受导致他们大量停机的攻击之后才开始研究 DDoS 保护。可以主动开启 DDoS 缓解服务,以确保快速解决 DDoS 攻击并最大限度地减少停机时间。

实行 Web 开发最佳实践

为了最大限度地降低编码错误导致网站瘫痪的风险,开发人员应该采取一些基本的预防措施。使用本地环境进行开发、使用版本控制以及立即测试站点的所有生产更改(包括边缘情况),将有助于降低因生产 bug 导致站点瘫痪的风险。

选择正确的注册机构

域名过期方面,一些域名注册机构比其他域名注册机构更宽容。最好的注册机构会在域名即将到期时通知客户以及在到期后提供宽限期,这能够最大限度地延长正常运行时间。有关做出此决定的更多信息,请参阅如何选择最佳域名注册机构

使用 CDN

内容交付网络 (CDN) 在网络边缘缓存网站数据,并能够为用户提供临时缓存的网站文件,而无需联系主机的原始服务器。即使在托管服务器无响应时,CDN 也可帮助从缓存中为网站提供服务,从而小规模停机期间提供覆盖。

请记住,CDN 只能覆盖短暂的停机时间间隙,因为缓存的网站文件具有生存时间 (TTL),之后 CDN 将再次联系主机服务器,请求文件的新副本。此 TTL 通常在 30 秒到 5 分钟之间。

仔细监控

了解停机时间对于缓解问题很重要。除了托管服务提供商提供的监控外,还建议使用单独的正常运行时间监控服务。这些服务可以在网站因任何原因出现故障时向开发人员发送警报。