通过node.js防止拒绝服务的最佳实践未捕获exception

所以最近我实现了一个类似于node.js的域名文档( http://nodejs.org/api/domain.html#domain_warning_don_t_ignore_errors )所build议的模式,以便在发生未被捕获的exception时正常地崩溃服务器。

然而,显而易见的是,通过快速触发错误可能造成拒绝服务,因为开始一个新的过程需要大量的时间。

有没有推荐的最佳做法来减轻这一点?

  • logging你的未捕获的exception
  • 阅读日志
  • 花时间理解,重现和修复错误
  • 继续部署应用程序的新版本,其中未捕获的exception越来越less
  • 使用群集模块和负载均衡器进行容错
  • 考虑networking级别的DoS保护,如果你真的需要它
  • 有一个Web服务器configuration方便的情况下特定的URL崩溃你的应用程序,你可以让你的Web服务器快速开始过滤这些请求,使他们永远不会到达您的应用程序服务器。 这可以用一个nginx位置块来完成,它只发送一个失败的鲸types响应。
    • 意识到这只能帮助一些情况。 在复杂的情况下,如果特意制作的POST消息主体崩溃了应用程序,并且closures整个URL将阻止合法的用户访问,则需要通过部署更好的代码进行响应。