对于位置 /foo,如何让 Nginx 不在根目录中查找 foo 目录并遵循不同的绝对路径 /root/blah?

对于位置 /foo,如何让 Nginx 不在根目录中查找 foo 目录并遵循不同的绝对路径 /root/blah?

我有一个 REST API,它在 Nginx 中运行良好,配置如下:

server {
    listen       443;
    server_name  localhost;

    ssl on;
    ssl_certificate /usr/local/etc/nginx/ssl/localhost.crt;
    ssl_certificate_key /usr/local/etc/nginx/ssl/localhost.key; 

    root /Volumes/Data/api/public/;

    location / {
        try_files $uri /index.php?$query_string;
    }

    location /index.php {
        fastcgi_connect_timeout 6000s;
        fastcgi_read_timeout 6000s;
        fastcgi_cache off;
        include   /usr/local/etc/nginx/conf.d/php-fpm;
    }
}

现在我想制作一个不通过我的应用程序的 index.php 的 Angular 仪表板。它也不在根 /public 文件夹中,而是在特定文件夹中,该文件夹中有一个用于构建/编译的 angular 项目的目录。我希望它可以在 /dashboard 上访问。

location /dashboard {  
    root /Volumes/Data/api/dashboard/dist/;
    index index.html;
}

问题是它正在新根目录中寻找一个名为仪表板的文件夹:[错误] 21783#0:*1 open()“/Volumes/Data/api/dashboard/dist/dashboard”失败(2:没有此文件或目录),客户端:127.0.0.1,服务器:localhost,请求:“GET /dashboard HTTP/1.1”,主机:“localhost”

有没有办法忽略主位置名称 (/dashboard) 并从该名称之后开始计数?例子:

/dashboard points to -> /Volumes/Data/api/dashboard/dist/
/dashboard/images points to ->  /Volumes/Data/api/dashboard/dist/images/

相关内容