Load balance средствами nginx и кластер pm2 — взаимозаменяемы или конфликтны?
Есть приложение на NodeJS. Но нету уверенности что оно сможет выдержать большое количество посетителей. Приложение за прокси nginx.
Попробовал стандартный load balance средствами nginx, вроде бы все просто.
Также есть вариант запуска приложения в кластере pm2.
У меня маловато опыта с DevOps, поэтому возник вопрос - взаимозаменяемы ли эти технологии? Ну например, вместо запуска приложения в кластере pm2 я же могу запустить 2 приложения и делать load balance. Или это разные вещи? Может ли это работать вместе и должно ли? Какие вообще варианты простые масштабировать приложение без особых усилий не специалисту? С Докером сложно.
1. nginx - вебсервер, pm2 - процесс менеджер, балансировка нагрузки одна из функций обоих программ.
2. Что вы можете запустить и можете ли вы делать балансировку, должно быть известно только вам.
3. Может если несколько серверов и на каждом сервере несколько процессов. Одним инструментом балансируете между серверами вторым между процессами.
4. С nginx не работал, балансировщик pm2(кластер) - черный ящик и работает только в рамках одного сервера. Зачастую подключаемые клиенты подключаются к одному - двум процессам из четырех.
Вообщем интересно вот что. pm2 я могу запустить приложение в нескольких процессах. Но также я могу запустить одно и то же приложение несколько раз и оно также встанет в несколько процессов и уже между ними балансировать веб сервером. Непонятно - что эффективнее?
These days, a lot of people also prefer PM2, which handles the clustering for you and also provides some cool monitoring features.
Then, add Nginx or HAProxy in front of several machines running with clustering and you have multiple levels of failover and a much higher load capacity.