Несколько приложений react, не запущенных в nginx

#nginx

Вопрос:

У меня есть 3 приложения: 1 nodejs и 2 приложения для реагирования. Мой nginx.conf выглядит так:

 #node-app is running on port 3001
upstream api {
    server localhost:3001;
}

server {
    listen       80;
    listen       [::]:80;
    server_name  _;
    index index.html index.htm;

    location /api {
        rewrite /api /$1 break;
        proxy_pass  http://api;
    }
    #the first react app
    location /admin {
        root /home/ec2-user/admin/build;
        try_files $1 index.html;
    }
    #the second react app
    location / {
            root /home/ec2-user/client/build;
            try_files $uri /index.html;
    }
 

Что происходит, так это то, что я могу перейти ко второму приложению react. Но когда я перехожу на страницу администратора, я получаю ошибку nginx:

 The page you are looking for is not found.
 

Я также попытался объявить администратора таким образом:

     location /admin/(.*) {
        root /home/ec2-user/admin/build;
        try_files $1 index.html;
    }
 

Но тогда на странице ничего не отображается. Я подозреваю, что приложение № 2 берет верх, но, поскольку нет пути к «администратору», оно показывает пустую страницу.

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

1. расположение ^~ /администратор/ { если (!-e $request_filename){ переписать ^(.*)$ /index.html прервать; } root /var/www/html/администратор/сборка/; }

Ответ №1:

Пожалуйста, добавьте

эти правила в nginx

#Первое приложение

  location ^~ /admin/ {
  if (!-e $request_filename){
    rewrite ^(.*)$ /index.html break;
}
root /home/ec2-user/admin/build;
  }
 

###Второе приложение

 location ^~ /admin-page/ {
  if (!-e $request_filename){
    rewrite ^(.*)$ /index.html break;
}
root /home/ec2-user/client/build;
  }
 

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

1. Спасибо, но второе приложение должно быть в корне, что-то вроде: местоположение ^~ / Я попробовал, но оно все еще не отображает первое приложение.

2. Когда я захожу во второе приложение, я вижу эту ошибку в консоли: Ошибка синтаксиса: Неожиданный токен ‘

3. добавьте многопольный поддомен и используйте