
Я разработал приложение с использованием AngularJS + NodeJS (вместе с MariaDB, Redis и Socket.io для уведомлений в реальном времени) и развернул его на одном узле Linode. Теперь я хотел бы организовать архитектуру таким образом, чтобы я мог легко масштабировать приложение в случае увеличения трафика в будущем.
Поэтому моя идея заключается в том, чтобы подготовить все следующим образом:
- 1 сервер Linode LoadBalancer, который будет основной точкой и будет перенаправлять запросы, поступающие от пользователей
- 1 сервер узлов Linode, на котором я установлю Nginx, который, выступая в роли обратного прокси-сервера, перенаправляет на сервер NodeJS в том же узле
- 1 сервер узлов Linode для MariaDB и сервера Redis
поэтому, когда мне нужно масштабирование, я добавляю новый узел с Nginx + NodeJS. Для MariaDB + Redis я бы установил кластеризацию для обоих (я использую Redis для сессии и MariaDB для данных).
Теперь мои сомнения заключаются в следующем:
Какова будет правильная архитектура для приложения?
Где мне следует разместить приложение AngularJS: на LoadBalancer или на каждом узле?
нужно ли, чтобы nginx работал как обратный прокси на каждом узле?
Спасибо!