Запуск внешнего и внутреннего интерфейса на разных портах

Привет, я запускаю мой внешний интерфейс (create-реагировать-приложение) и внутренний сервер (express.js) на разных портах, но на одном хосте. Например: интерфейс включен 127.0.0.1:3000 и бэкэнд на 127.0.0.1:3003,

в моем package.json:

{...
 "proxy": "http://localhost:3003",
...}

Все работало нормально, пока я не перенес свое приложение на удаленный сервер.

Мое приложение неожиданно начало обновляться, когда я пытаюсь отправить http-запрос (axios) на сервер (возможно, из-за неправильных настроек прокси).

Итак, у меня есть приложение, работающее на внешнем интерфейсе 35.125.320:10:3000 и сервер работает на 35.125.320:10:3003, Мои http-запросы были неожиданно отменены. (Я проверил сеть). Поэтому я изменил мои настройки прокси на

{...
  "proxy": "35.125.320:10:3003",
...} 

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

ОБНОВИТЬ

сценарий:(я делаю два почтовых запроса)

1) первый запрос все еще прошел (приложение не обновлено)

2) тот же запрос пройден (но иногда приложение обновляется)

3) секунда все еще отменяется браузером.

ВОПРОС

Как мой веб-интерфейс может взаимодействовать с внутренним сервером через прокси-сервер, если они работают на разных портах, но на одном сервере и домене?

Спасибо за ответ.

2 ответа

Решение:

Проблема заключалась в том, что я использовал прокси в производстве, которое подходит только для разработки.

Я добавил эту строку на моем сервере express.js:

app.use(express.static(`${process.cwd()}/build`));
app.use(express.static(`${process.cwd()}/public`));

Я делаю сборку и обслуживаю js, css файлы из моей папки сборки. А также мне нужно было подавать статические файлы (изображения, папки и т. Д.) Из моей общей папки.

Эта проблема также может привести к отмене http-запроса браузером на производстве. Значит, запросы не смогли добраться до сервера.

Чтобы сделать ваше приложение общедоступным, вы захотите создать производственную сборку. В комментарии вы упомянули, что "запускаете сборку npm, а затем используете эту сборку как статический файл в express.js". Это отличный способ сделать ваше приложение реакции общедоступным. Как сказано в документации create-реагировать на приложение:

npm startили жеyarn start

Запускает приложение в режиме разработки.

При беге yarn start или же npm startВам также выдается уведомление: "Обратите внимание, что сборка для разработки не оптимизирована". Лучшим вариантом будет запустить yarn build или же npm build и найдите способ обслуживать эти статические файлы, как вы делаете.

Другие вопросы по тегам