Как развернуть различные приложения MERN в цифровом океане в одной капле? - PullRequest
0 голосов
/ 19 марта 2020

Я всегда использовал heroku для развертывания приложений MERN. Для mon go db я использую MongoDB Atlas, но в моей работе они хотят перенести все проекты в DigitalOcean. У меня есть несколько вопросов по этому поводу:

  1. Могу ли я иметь приложение mongoDB + nodejs backend + реагировать на одну каплю?
  2. Могу ли я развернуть два или более приложений в одной капле? (Приложения имеют разные домены)
  3. Есть ли видеоурок по этому поводу (я прочитал много документации и получил много ошибок при попытке сделать это. Мои глаза болят ?)
  4. Для Например, если у меня в Heroku два приложения для одного и того же веб-сайта, одно приложение для бэкэнда nodejs и другое для интерфейса реагирования ... могу ли я сделать то же самое для DigitalOcean?

Спасибо за заранее!

1 Ответ

0 голосов
/ 20 марта 2020

Да, вы можете развернуть несколько служб на одном сервере, они просто должны прослушивать разные порты.

Например, давайте рассмотрим, что сервер MongoDB работает на порту 27017, сервер Node.js http работает на порту 5000, а приложение React работает на порту 8000.

Скажем, IP-адрес вашего сервера 13.13.13.13.

Затем вы можете получить доступ к вашему серверу MongoDB, Node.js http-серверу и приложению React, используя 13.13.13.13:27017, 13.13.13.13:5000 и 13.13.13.13:8000 соответственно, из любой точки Inte rnet, где ваш IP не заблокирован .

Теперь на вашем сервере вы настроили iptables для переадресации всех входящих соединений с порта 8000 на 80. Теперь вы можете получить доступ к своему приложению React, посетив 13.13.13.13, больше не нужно использовать порт.

Теперь, скажем, вы добавляете записи DNS для example.com и api.example.com, чтобы указывать на ваш IP , А поскольку у вас не может быть A записей или CNAME записей, указывающих на порт, оба ваших домена перенаправят вас в ваше приложение React. Вам нужно будет явно указать номер порта вместе с вашим доменом, если вы хотите получить доступ к своему Node.js бэкенду, например http://example.com:5000 или http://api.example.com:5000.

Если вы не хотите получать доступ к вашему бэкэнду бэкэнд, используя номер порта, вы можете использовать Nginx в качестве обратного прокси. Вы можете настроить Nginx для маршрутизации всех траффиков c на api.example.com на ваш внутренний сервер, прослушивающий localhost:5000.

...