是否可以在没有多个域的情况下在 NGINX 上设置多个服务器块

Is it possible to set up multiple server blocks on NGINX without multiple domains

我有一个子域 labs.mydomain.com,我想在其中托管我在不同文件夹上开发的几个 Web 应用程序:labs.mydomain.com/app1labs.mydomain.com/app2labs.mydomain.com/app3。我希望它是由文件夹分隔的同一个域,而不是像上面的示例一样为每个子域创建一个新的子域。

问题是我在每个项目上都使用了一些框架,所以我必须将 /app1 映射到 /app1/public 并将 /app2 映射到 app2/public

NGINX 是否接受 server_name 类似于 labs.mydomain.com/app1

可以吗?如果没有,最好的选择是什么?

Nginx 不支持 labs.mydomain.com/app1 作为 server_name。 但是您可以使用 location 指令为您的目录配置规则。示例如下:

location /app1 {
    alias /var/www/app1/public/;
}

location ~ ^/app1/(.+\.php)$ {
    alias /var/www/app1/public/;
    fastcgi_pass 127.0.0.1:8888;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    include fastcgi_params;
}