Nginx - 同一服务器内的两个位置

Nginx - 同一服务器内的两个位置

我在同一个服务器块内提供两个 Angular 应用程序,生产和演示。

我创建了文件夹 /var/www/myapp/demo 和 /var/www/myapp/prod

因此当我输入 localhost/ 时应该是 serve prod 而 locahost/demo 应该是 serve demo

我尝试以下配置

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    index index.html;

    server_name _;

    root /var/www/myapp;

    location / {
        root /var/www/myapp/prod;
    }

    location /demo {        
        root /var/www/myapp/demo;
    }

} 

但没有成功。

我尝试了其他的变体,但直到这里

我如何配置我的服务器块以使其工作。

谢谢

答案1

在 nginx 中, 指定的路径location会添加在 指定的目录后面root

因此,在这种情况下,nginx 会尝试从 加载您的演示版本/var/www/myapp/demo/demo

只要您在 nginx 中对应用程序服务器的配置正确,此配置就应该有效。

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    index index.html;

    server_name _;

    location / {
        root /var/www/myapp/prod;
    }

    location /demo {
        root /var/www/myapp;
    }
}

相关内容