【发布时间】:2017-10-03 07:39:59
【问题描述】:
出于实验/学习目的(假设我的应用程序有很多持久/并发流量),我有一个运行 docker 的 VM。对于 docker,我有以下设置:
一切都有自己的容器并与端口通信。我正在尝试模拟两个不同的服务器 (Nginx),由 HAProxy 进行负载平衡。
现在一切正常,但据我所知,Node 仍然在单线程中运行。
Nginx 包含的唯一配置是作为 Node 的反向代理(其他一切都是默认的)。每个 Nginx 服务器每台服务器(节点)只处理一个域。
我应该使用 Node Cluster 进行多线程方法吗?
或者(假设每个服务器有 2 个核心)我应该为每个 Nginx 服务器创建两个节点实例并进行负载平衡吗?在这种方法中,我不确定负载平衡将如何工作。如果有两个 Node 实例,由 Nginx(或 HAProxy)负载均衡,那么它看起来像:
现在我想要 Nginx 的原因是用于静态缓存和 DDOS 保护之类的东西。这真的有意义吗?或者我应该在没有 HAProxy 的情况下在所有四个节点服务器之间只使用一个 Nginx 负载平衡(我引入 HAProxy 的原因是因为一些研究表明它比 Nginx 更快/更可靠(未经证实)。
对此还是陌生的。基本上,我想模拟两台服务器,每台服务器都有两个内核,每个内核都运行 Node.js,由 Nginx 反向代理以进行静态缓存等,并由 HAProxy 进行负载平衡。
【问题讨论】:
标签: node.js nginx docker proxy load-balancing