node.js 和浏览器之间的中间件?

Middleware between node.js and Browser?

在 node.js 应用和浏览器之间实现中间件 service/app 是个好主意吗?

例如:

Browser <----- [Middleware]  <---- [Node JS] 

Node.js 将 json 元数据发送到 Middleware 应用程序,然后将其传递给浏览器(套接字或 HTTP)。如何做到这一点,我应该使用 RabbitMQ 之类的东西将数据从 [Node JS] 传递到 [Middleware] 应用程序吗?

[Middleware]也可以写成node.js

我想这样做的原因是我不想让浏览器或 public 知道 [Node JS] 应用程序。

[Node JS]用于通过TCP socket与外部PBX Server进行实时通信。如果我没有 [Middleware] 那么最终用户可以直接对 [Node JS] 进行 DDOS 攻击,这会影响 [Node JS] 和 PBX 服务器之间的实时通信。

当您想做出这些架构决策时,最好包括风险管理。从技术上讲,这个中间件是可以实现的,但这里的关键问题是"Should you implement this"。

首先问问自己,有人要对您的服务器进行 DDOS 攻击的可能性有多大?如果机会很小,那么您不需要这个中间件。

如果概率很高,那么如果有人真的对你的服务器进行DDOS攻击,你会损失多少钱,你需要多少时间来保护自己并使你的服务再次可用?

一些通用的计算方法是计算您在一个 minute/hour/day 期间的收入,然后乘以您的服务将要离线的时间。

您的客户期望是什么,有多少客户会使用您的服务?

您是否可以实施任何其他方法来减轻 DDOS 攻击。

最后,您的中间件将如何保护您免受 DDOS 攻击?您不想在不知道它真的会保护您的情况下花费数小时来实现您的中间件。通过制作中间件,你是 "masking" 你的 Node.js 服务器,但仍然有人可以攻击你的中间件并使你的服务离线然后呢?