是否可以在没有多个域的情况下在 NGINX 上设置多个服务器块
Is it possible to set up multiple server blocks on NGINX without multiple domains
我有一个子域 labs.mydomain.com
,我想在其中托管我在不同文件夹上开发的几个 Web 应用程序:labs.mydomain.com/app1
、labs.mydomain.com/app2
、labs.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;
}
我有一个子域 labs.mydomain.com
,我想在其中托管我在不同文件夹上开发的几个 Web 应用程序:labs.mydomain.com/app1
、labs.mydomain.com/app2
、labs.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;
}