从 Win 2012 R2 Hyper-V 主机运行 Web 服务 - xDoS 预防

从 Win 2012 R2 Hyper-V 主机运行 Web 服务 - xDoS 预防

场景如下。

我们有一个 Windows Server 2012 R2 Hyper-V 版本,上面托管着三台 NLB 2012 R2 Web 服务器,上面安装了我们的产品。它们从连接的公共服务器接收 XML 数据,运行良好。

我们有一个 Web 服务,用于检查 xDoS 攻击(这看起来像是一个端点向集群发送逻辑重复的 XML 消息)或有缺陷的端点,这些端点会以“失控循环”的形式发送消息。每个 IIS 服务器上的接收器都会调用 Web 服务,以查看它们是否应该处理或拒绝给定的消息。不用说,这必须非常快,而且由于这是一个集群,因此必须:

  • 存储过去收到的消息数据的公共位置
  • 这些数据保存在内存中的常见 Web 服务

第一个选项的合理位置是数据库,但该选项会大大减慢进程。我们每秒收到数千条消息,无法将这种开销添加到每条消息中。

常见的 Web 服务运行得很好,但是当集群中的一台服务器出现故障时,剩余服务器之间的协调就非常复杂——它们需要决定谁来担任主服务器,当出现故障的服务器重新启动时,它需要重新加入其他服务器,等等...

问题如下...

由于所有虚拟机都存储在一个公共 Hyper-V 主机上,我们能否将 IIS 添加到主机并在那里运行 xDoS 检查器 Web 服务?该 Web 服务始终只会从托管在其上的 IIS 服务器调用(无公共访问)。这意味着没有编排,因为它唯一会宕机的时候就是所有其他服务都宕机的时候。

问题如下...

不好的做法?如果是,为什么?顺便说一句,对我来说,“因为别人不这么做”或类似的说法并不是一个好的理由。

非常感谢,罗布

相关内容