我使用 AngularJS + NodeJS(以及用于实时通知的 MariaDB、Redis 和 Socket.io)开发了一个应用程序,并将其部署在单个 Linode 节点上。现在,我想以一种方式组织架构,以便在将来流量增加时轻松扩展应用程序。
所以我的想法是做好以下所有准备:
- 1 个 Linode LoadBalancer 服务器,它将作为主要点,并将重定向来自用户的请求
- 1 个 Linode 节点服务器,我将在其中安装 Nginx,它充当反向代理,重定向到同一节点中的 NodeJS 服务器
- 1 个用于 MariaDB 和 Redis 服务器的 Linode 节点服务器
因此当我需要扩展时,我会使用 Nginx + NodeJS 添加一个新节点。对于 MariaDB + Redis,我会为两者设置集群(我使用 Redis 来处理会话,使用 MariaDB 来处理数据)。
现在我的疑问如下:
该应用程序的适当架构是什么样的?
我应该把 AngularJS 应用程序放在哪里,在 LoadBalancer 上还是在每个节点上?
我是否需要 nginx 在每个节点上充当反向代理?
谢谢你!