Как запустить разные серверы / места для одного приложения NodeJS / REST - PullRequest
0 голосов
/ 18 сентября 2018

Мне интересно, как лучше всего развертывать разные серверы в разных местах для приложения NodeJS + API REST.

Я понимаю преимущества использования CDN для доставки статических ресурсов клиентам в различных географических точках, но что может быть эквивалентно предоставлению динамических страниц SSR (на стороне сервера) и REST API-вызовов отразличные серверы в соответствии с географическим местоположением клиента.

Моя первая попытка будет:

  • Развернуть приложение NodeJS на нескольких разных VPS по всему миру
  • Синхронизируйте базы данных (в моем случае MongoDB), чтобы каждый отдельный экземпляр VPS локально рисовал в одной и той же базе данных.
  • В записи моего доменного имени A добавьте ip-адреса всех VPS, на которых запущено приложение (скажем, 4-5 на разных континентах / в разных областях)
  • Надеюсь, тогда клиенты просто автоматическиподключиться к какому-либо экземпляру приложения, ближайшему к ним?

Этого будет достаточно?Или есть совершенно другой, лучший способ сделать это? Будут ли службы DNS клиентов автоматически выбирать ближайший к ним IP-адрес?Или они просто выберут первый IP-адрес в списке, независимо от того, как далеко он находится?

Примечание: Я бы подумал, что мне следует использовать балансировщик нагрузки для этого, но глядяу моего хостинг-провайдера (Digital Ocean) кажется, что балансировщики нагрузки - это вещи, к которым люди подключаются в одном месте / регионе, а затем указывают их на разные серверы в том же регионе.Я хочу, чтобы люди могли подключаться к различным серверам в разных регионах, в зависимости от их местоположения, для максимально быстрого и плавного взаимодействия.(Моя проблема не в балансировке нагрузки на серверах, а в просто географической близости к клиентам. Мои серверы не перегружены, я просто хочу, чтобы они были закрыты, где бы ни находился клиент.)

...