Развернуть ReactJS и ExpressJS на Nginx - PullRequest
0 голосов
/ 19 июня 2020

У меня типичная установка Ubuntu VPS (20.04LTS), на которой я установил Nginx сервер. У меня есть два локальных репозитория с репозиторием внешнего кода reactJS и внутренним ExpressJS кодом. Я начну ExpressJS на порте 3000 с вечным запуском. У меня тоже mysql дб. Я настроил Nginx на сервер файлов stati c с root / var / www / [ваше имя репо] / build; и я могу открыть файлы html, и он работает. Вопрос в том, нужно ли мне запускать другой порт для примера запуска запуска ReactJS npm или достаточно Nginx? Не могли бы вы помочь мне с помощью ссылок или передового опыта?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Если вы используете CRA (приложение для создания реакции), оно поставляется со сценарием сборки, поэтому после запуска npm run build все приложение будет встроено в файлы stati c, включая index.html и некоторые js и css файлы. все, что вам нужно сделать, это настроить nginx для обслуживания этого index.html. так что nginx достаточно для этого. если вы используете react-router в своем приложении, имейте в виду, что вам может потребоваться использовать try_files директиву nginx для обслуживания этого index.html для любых входящих запросов.

для получения дополнительной информации о реакции -router и nginx см. this .

Если вы выполняете SSR (рендеринг на стороне сервера), вам нужен диспетчер процессов, например pm2 или forever, для обслуживания вашего app внутренне и proxy_pass директива nginx для обратного прокси-входящих запросов к вашему приложению. Подробнее

0 голосов
/ 19 июня 2020

Все файлы stati c, такие как index. html и активы, будут обслуживаться из вашей папки «root / var / www / [ваше имя репо] / build», когда пользователь откроет ваш базовый URL-адрес и отправлено как ответ на вызов get. Не забудьте добавить в коде '/ api /' ко всем запросам бэкэнда из пользовательского интерфейса, чтобы они перенаправлялись в вашу службу, работающую на порту 3030.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...