Nginx 子文件夹 admin react app 在主 react app 下

Nginx Subfolder admin react app under main react app

我有两个应用程序是用 React 开发的。

我构建了两个应用程序并将用户应用程序构建放在 site 目录中,而管理应用程序构建在 site/admin 目录中

我要的是

当有人尝试 www.mydomain.com/admin 时,它应该转到 admin 目录,如果 url 中没有给出 admin,那么它不应该寻找 admin 而应该提供用户文件。

我愿意以任何可能的方式更改目录结构,以使 url 能够按预期工作。

我付出了很多时间和尝试,但未能取得成果。我遗漏了一些东西,可能与 try_files 配置有关,但我还不确定。

以下是我目前根据需要创建的 Nginx 文件。

如果我写 mydomain.org/admin,它工作正常。

但是当我写 mydomain.org/admin/{someotherparam e-g dashboard} 时,它会加载主要用户反应应用程序而不是管理应用程序。我想在这种情况下它会读取用户的索引文件。如果 /admin/ 在 url 上,如何读取 admin 的索引文件。

我对nginx的配置了解不多,你试过了google。

我只剩下 1 项任务要做,就是将管理目录和用户目录分开。 但是我将不得不做域。org/user 和域。org/admin,这是我不想要的。 我希望只有当 url 中的管理员在 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;

    }
}

我在 ubuntu 18.

上使用 LEMP

你能试试这个配置吗?

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;
    }
}