与上不同的子域的根文件夹中的多个位置nginx的配置(Configure nginx with mu

2019-06-26 10:15发布

我期待成为一个子域的子域和目录的根URL到我的服务器上的两个不同的文件夹。 下面是简单的设置,我有和没有工作...

server {

    index index.html index.htm;
    server_name test.example.com;

    location / {
            root /web/test.example.com/www;
    }

    location /static {
            root /web/test.example.com/static;
    }
}

在这个例子中去test.example.com/会带来索引文件/web/test.example.com/www

和去test.example.com/static会带来索引文件/web/test.example.com/static

Answer 1:

您需要使用的alias为指令location /static

server {

  index index.html;
  server_name test.example.com;

  root /web/test.example.com/www;

  location /static {
    alias /web/test.example.com/static;
  }

}

在nginx的维基解释比我的根,别名更好的区别:

请注意,它可能类似于一见钟情根指令,但文档根目录并没有改变,只是用于请求的文件系统路径。 请求的位置部分在请求Nginx的问题被丢弃。



Answer 2:

Location指示系统

就像你希望转发到启动所有的请求/static和你的数据呈现/var/www/static

因此,一个简单的方法是最后一个文件夹的完整路径分离,这意味着

完整路径: /var/www/static

最后一个路径: /static和第一条路径: /var/www

location <lastPath> {
    root <FirstPath>;
}

所以,让我们看看你做了什么错的,什么是您的解决方案

你的错误:

location /static {
    root /web/test.example.com/static;
}

您的解决方案:

location /static {
    root /web/test.example.com;
}


Answer 3:

server {

    index index.html index.htm;
    server_name test.example.com;

    location / {
        root /web/test.example.com/www;
    }

    location /static {
        root /web/test.example.com;
    }
}

http://nginx.org/r/root



文章来源: Configure nginx with multiple locations with different root folders on subdomain