我期待成为一个子域的子域和目录的根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
您需要使用的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的问题被丢弃。
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;
}
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