Configuration Nginx在一个虚拟主机上的不同位置

Configuration Nginx在一个虚拟主机上的不同位置,configuration,nginx,webserver,Configuration,Nginx,Webserver,我的虚拟主机有以下nginx配置: server { listen 80; server_name myproject; location / { root /var/www/project1; } location /project2 { root /var/www/project2; } } 但web服务器显示以下错误: location "/" is outside location "/pro

我的虚拟主机有以下nginx配置:

server {
    listen      80;
    server_name myproject;

    location / {
        root /var/www/project1;
    }

    location /project2 {
        root /var/www/project2;
    }
}
但web服务器显示以下错误:

location "/" is outside location "/project2"
我想通过以下方式打开第一个项目:http://myproject 第二个项目通过http://myproject/project2

“我的配置”有什么问题?

您的服务器{}块中应该只有一个根。在这里阅读Nginx陷阱:并查看关于“根在位置块内部”的部分

将根目录放在位置块之外,并将其设置为/var/www。将project1的索引文件和其他文件放置在/var/www中。创建一个文件夹/var/www/project2,并将project2的索引等放置在此文件夹中

您可以省略location/project2{}部分,除非您想为此项目指定一些其他设置。如果设置与project1完全不同,我建议将project2的所有内容移动到另一个服务器{}块,并在那里指定其根目录和其他设置