Nginx Приложение реагирования на вложенные папки в главном приложении реакции - PullRequest
1 голос
/ 29 января 2020

У меня есть ситуация, когда у меня есть два приложения, разработанные по реакции.

  • Пользовательское приложение
  • Приложение администратора

Я сделал компоновку обоих приложения и поместили пользовательскую сборку приложения в каталог site, где сборка приложения администратора находится внутри site/admin каталога

Что я хочу, это

, когда кто-то пытается www.mydomain.com/admin, он должен go в каталог администратора, где, как если бы в URL не указывалось имя администратора, он не должен искать администратора, вместо этого должны обслуживаться пользовательские файлы.

Я готов изменить структуру каталога любым возможным способом сделать эти URL-адреса работать как положено.

Я потратил много времени и попыток, но не смог достичь результата. Я что-то упустил, возможно, это связано с try_files конфигурацией, но я еще не уверен.

Ниже приведен файл Nginx, который я создал для своих нужд.

Если я напишите mydomain.org/admin, все работает нормально.

Но когда я пишу mydomain.org/admin/{someotherparam e-g dashboard}, он загружает приложение реакции основного пользователя вместо приложения администратора. Я думаю, что в этом случае он читает индексный файл пользователя. Как заставить читать индексный файл администратора, если /admin/ в URL-адресе сначала.

Я не очень разбираюсь в конфигурации nginx, ты пробовал Google.

Только Одна задача, которую мне остается выполнить, - это если я разделю каталог администратора и каталог пользователя. Но тогда я должен был бы сделать domain.org/user и domain.org/admin, чего я не хочу. Я хочу, чтобы админ реагировал на работу только в том случае, если после URL стоит в первую очередь админ.

Я не уверен, как заставить это работать.

server {
    listen 80;
    listen [::]:80;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;

    server_name mydomain.org www.mydomain.org;

    location / {
        root /var/www/mydomain.org/html/frontend/site;
        try_files $uri $uri/ /index.html;
    }

    location /admin(.*) {
        root /var/www/mydomain.org/html/frontend/site/admin;
        try_files $uri $uri/ /index.html;

    }
}

Я использую LEMP на Убунту 18.

1 Ответ

2 голосов
/ 29 января 2020

Не могли бы вы попробовать этот конфиг?

server {
    listen 80;
    listen [::]:80;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;

    server_name mydomain.org www.mydomain.org;
    root /var/www/mydomain.org/html/frontend/site;

    location / {
        try_files $uri $uri/ /index.html;
    }

    location /admin {
        try_files $uri $uri/ /admin/index.html;
    }
}
...