在node.js应用和浏览器之间实现中间件服务/应用是否是个好主意?
例如:
Browser <----- [Middleware] <---- [Node JS]
Node.js将json元数据发送到Middleware
app,然后将其传递给Browser(套接字或HTTP)。如何做到这一点,我应该使用RabbitMQ之类的东西将数据从[Node JS]
传递到[Middleware]
应用程序吗?
[Middleware]
也可以用node.js
我认为这样做的原因是因为我不希望浏览器或公众了解[Node JS]
应用。
[Node JS]
用于通过TCP套接字实时在PBX服务器之间进行通信。如果我没有[Middleware]
那么最终用户可以直接DDOS攻击[Node JS],这将影响[Node JS]
和PBX服务器之间的实时通信。
答案 0 :(得分:1)
当您想要做出这些架构决策时,最好包含风险管理。从技术上讲,这个中间件可以实现,但这里的关键问题是“你应该实现这个”。
首先问问自己,有人在您的服务器上进行DDOS攻击的概率是多少?如果机会很小,那么你不需要这个中间件。
如果概率很高,那么如果有人真的对您的服务器进行DDOS攻击以及您需要多长时间为自己辩护并使您的服务再次可用,那么您将损失多少钱?
一些通用的计算方法是计算您在一分钟/小时/天内获得的收入,然后乘以您的服务离线时间。
您的客户期望是什么,以及有多少客户会使用您的服务?
是否有其他方法可以实施以软化DDOS攻击。
最后,您的中间件如何保护您免受DDOS攻击?您不想花费数小时实施中间件而不知道它真的会保护您。通过制作中间件,您正在“屏蔽”您的Node.js服务器,但仍然有人可以攻击您的中间件并使您的服务脱机,然后是什么?