问题一方面是拒绝不良流量,另一方面是提高您自己代码的性能。
被恶意攻击过多的流量称为拒绝服务攻击。这个想法是用流量访问站点,使服务器无法应对负载,停止响应,因此没有人可以通过并且站点脱机。
但是,您也可能仅仅因为您的网站变得流行而受到过多流量的打击。这很容易在一夜之间毫无预警地发生,例如,如果有人在另一个受欢迎的网站上发布了指向您网站的链接。这种流量实际上可能是真实的并且需要(数百个额外的销售!耶!),但如果您没有准备好,可能会对您的服务器产生相同的影响。
正如其他人所说,配置您的 Web 服务器以应对高流量非常重要;我会让其他答案不言自明,这是很重要的一点,但是您也可以在自己的代码中做一些事情来改进事情。
服务器无法应对增加的负载的主要原因之一是请求所花费的处理时间。
你的web服务器一次只能处理一定数量的请求,但是这里的关键词是“同时”,减少同时请求数量的关键是减少你的程序运行所需的时间.
想象一下,您的服务器可以同时处理十个请求,而您的页面加载需要一秒钟。
如果您每秒最多收到十个请求,那么一切都会无缝运行,因为服务器可以处理它。但是如果你稍微超过了一点,那么第十一个请求要么失败,要么必须等到其他十个请求完成。然后它将运行,但会吃掉下一秒的十个请求。十秒过去了,你的响应时间已经缩短了一秒,而且只要请求保持在同一水平,它就会变得更糟。服务器很快就会不堪重负,即使它只是超出其容量的一小部分。
现在想象可以优化同一个页面以减少时间,比如说半秒。您的同一台服务器现在每秒可以处理 20 个请求,这仅仅是因为 PHP 代码更快。而且,它会更容易从过多的流量水平中恢复过来。而且由于 PHP 代码的运行时间更短,因此任何两个给定请求同时发生的可能性都较小。
简而言之,随着您减少处理请求所需的时间,服务器处理高流量的能力会大大增加。
所以这是一个网站在高流量激增中幸存下来的关键:让它运行得更快。
缓存:像 Drupal 和 Wordpress 这样的 CMS 内置了缓存。确保它已启用。为了获得更好的性能,请考虑使用 Varnish 等服务器级缓存系统。对于您不会过多更改页面内容的 CMS 类型系统,这是您可以做的最重要的事情,以提高您的性能。
优化您的代码:虽然不能指望您修复 Drupal 等第三方软件的性能问题,但您可以分析自己代码的性能(如果有的话)。自定义 Drupal 模块,也许吧?使用分析器工具来查找您的瓶颈。很多时候,这种分析可以揭示单个瓶颈占页面加载时间的 90%。不要费心优化小东西,但如果你能像这样找到并修复一两个大瓶颈,它会产生巨大的影响。
希望有帮助。