Правильный способ подключения двух серверов NodeJS

#javascript #node.js #server

#javascript #node.js #сервер

Вопрос:

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

Изображение, описывающее структуру приложения

Я кое-что читал о Websocket, но я не знаю, подходит ли это для моей идеи, потому что это двунаправленное соединение, и оно чаще всего используется для приложения для общения в чате

Я хочу создать приложение с помощью NodeJS, так что мне делать, чтобы реализовать эту идею, и спасибо за помощь.

Комментарии:

1. Ваш сервер и локальный сервер находятся в одной сети?

2. Что именно вы подразумеваете под «локальным»? Локальный в той же сети, что и «сервер»?

3. Пожалуйста, опубликуйте код, который вы пытались подключить к вашему серверу базы данных, без этого мы вряд ли сможем помочь. Но да, это довольно стандартная настройка для запуска базы данных на отдельном сервере.

4. Это очень распространенное явление. @obeda они оба находятся в одной сети? Правильно ли вы устанавливаете IP-адреса. То, что вы пытаетесь сделать, довольно распространено. Задействованы ли 2 контейнера Docker в какой-либо форме или форме, которые потребовали бы от вас сохранения обоих серверов в одной сети

5. Я думаю, стоит спросить, почему удаленный сервер должен запрашивать данные с вашего локального сервера. Почему бы просто не поместить все в место, где части могут легко общаться друг с другом?

Ответ №1:

Каждый сервер находится в другой сети, основной сервер находится на хосте Heroku, а локальный сервер находится на моем персональном компьютере

Жизнь была бы намного проще для вас, если бы вы переместили свой локальный сервер на Heroku, где им было бы намного проще и безопаснее общаться друг с другом.

Вы не можете подключиться со своего сервера Heroku к серверу в вашей частной локальной сети, потому что он находится за брандмауэром вашего домашнего маршрутизатора. Чтобы разрешить такое соединение, вам необходимо настроить известный общедоступный IP-адрес для вашей домашней сети (который не будет меняться или использовать DDNS, если он может измениться) и настроить переадресацию портов в вашем брандмауэре / маршрутизаторе, чтобы входящие соединения из Интернета на определенном порту могли достигать вашего локального сервера. Затем вам придется защитить свой локальный сервер от случайных интернет-атак, поскольку тогда он будет открыт для Интернета.

Еще одна возможность заключается в том, что вы можете подключить свой локальный сервер к вашему серверу Heroku (возможно, с помощью соединения WebSocket с использованием каких-либо секретных учетных данных). Поскольку ваш сервер Heroku уже доступен из вашей домашней сети, это потребует меньшего изменения конфигурации сети. В зависимости от того, что вы пытаетесь сделать между двумя серверами, вы можете либо попросить локальный сервер просто отправить обычный http-запрос на сервер Heroku (либо отправить данные, либо запросить данные), либо вы можете установить соединение с WebSocket, а затем данные могут быть отправлены любым способом соединения с WebSocket.