Подключение React к двум отдельным серверам

В настоящее время я использую два сервера, оба на моей локальной машине. Один Spring, другой Flask. Сервер Spring обрабатывает основную бизнес-логику моего приложения, тогда как сервер Flask обрабатывает легкие операции доступа к базе данных. Кроме того, у меня есть сервер React Node.js, который взаимодействует с обоими из них. Я рассматриваю возможность объединения сервера Flask с моим сервером Spring, чтобы решить эту проблему, но мне любопытно узнать правильный способ подключения к двум серверам.

Я использую прокси-сервер React, чтобы использовать порт сервера Spring, и я звоню на него, тогда как мой сервер Flask я подключаюсь с помощью «http://127.0.0.1:5000/» через fetch. Это отлично работает при доступе к сайту с хост-компьютера, но при попытке получить к нему удаленный доступ через переадресацию портов доступ к серверу Flask недоступен. Это имеет смысл, потому что React смотрит на локальный хост этой машины.

Мой вопрос: кроме слияния двух серверов, как я могу удаленно подключиться к ним обоим? Есть ли что-то большое, что мне не хватает? Я, конечно, рад предоставить все необходимые файлы или информацию, и поскольку я впервые делаю подобный проект, я надеюсь, что того, что я объяснил, достаточно.

Обновлено: Кроме того, я думаю, что отчасти это связано с тем, что Flask по умолчанию не разрешает внешние подключения. Я обновлю это больше, если что-нибудь выйдет из моих тестов.

EDIT2: я проверил это еще больше и обнаружил, что доступ к серверу Flask отлично работает, когда на него указывает реагирующий прокси-сервер, тогда как сервер Spring терпит неудачу. Противоположное поведение у меня сейчас. Так что дело не в поведении Flask по умолчанию, а в том, что React может проксировать только на один сервер за раз.

🤔 А знаете ли вы, что...
Node.js поддерживает работу с файлами и директориями на сервере.


1 247
1

Ответ:

Решено

У меня это работает, и на SO уже был опубликован хороший ответ, просто в другой формулировке, поэтому я его не нашел. Я дам ссылку на пост здесь!

Многосерверное решение

В частности, я просто не был знаком с файлом setupProxy.js, и это решение этой проблемы.