@deivoff
frontend-разработчик

Как настроить запуск трех приложений на сервере связкой nginx и react?

Здравствуйте, в чем заключается проблема:
На сервере должно работать три приложения:
1. React-create-app, порт 3000: это лендинг, он расположен по url: example.com/
2. React+route+express, порт 9000: это личный кабинет, когда человек заходит из лендинга, то его должно перенести на example.com/home/ - по этому пути работает другое приложение.
3. Сервер, который запущен на 8080, работающий с БД. на него приходят запросы с сайта, отправляются они по адресу example.com/server/

При перезагрузке второго приложения, оно вылетает, файл в nginx
root /this/my/folder;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;

        location / {
        proxy_pass http://localhost:3000;
        root /this/my/folder/one/build;
        }

        location /home/ {
        proxy_pass http://example.com:9000/;
        root /this/my/folder/two/dist;
        }

        location /server/ {
        proxy_pass http://example.com:8080/;
        }


Вставить куда либо try $uri $uri/ /index.html не помогает.

Если поменяю в index.html пути с <script src="/js/app.bundle.js"></script> на <script src="js/app.bundle.js"></script>, то страница грузится, но при перезагрузке страница не работает.
  • Вопрос задан
  • 527 просмотров
Решения вопроса 1
@deivoff Автор вопроса
frontend-разработчик
С божьей помощью, я нашел ответ на этот вопрос:
Во первых, директива root и вправду была не нужна, достаточно было proxy_pass.
Во вторых, второе приложение обращается на адрес example.com/home/, добавил в index.html абсолютный путь не <script src="/js/app.bundle.js"></script>, а <script src="/home/js/app.bundle.js"></script>, и так ко всем путям в index второго приложения
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы