nginx的 location 中的 root 与 alias 的差别

nginx的 location 中的 root 与 alias 的差别

[ root ]

语法: root path

默认值: root html

配置段:http、server、location、if

[ alias ]

语法:alias path

配置段:location

root 与 alias 主要区别在于nginx 如何解释 location 后面的 uri ,这会使两者分别以不同的方式将请求映射到服务器文件上。

root 的处理结果是: root 路径 + location 路径。

alias 的处理结果是:使用 alias 路径替换 location 路径。

alias 是一个目录别名的定义,root 则是最上层目录的定义。

还有一个重要的区别是 alias 后面必须是用 "/" 结束,否则会找不到文件的,而 root 则可有可无。

root 实例:

location ^~ /t/ {
    root /www/root/html/;
}

如果 一个请求的 URI 是 /t/a.html 时,web 服务器将会返回服务器上的 /www/root/html/t/a.html 的文件。

alias 实例

location ^~ /t/ {
    alias /www/root/html/new_t/;
}

如果一个请求的 URI 是 /t/a.html 时,web 服务器将会返回服务器上的 /www/root/html/new_t/a.html 的文件。
注意这里时new_t , 因为alias 会把 location 后面配置的路径丢掉,把当前匹配到的目录指向到指定的目录

总结注意

1、使用 alias 时,目录名后面一定要加 ”/“;

2、 alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。

3、alias只能位于location块中。(root可以不放在location中)

文章为: nginx.cn原创,转载请注明本文地址: http://www.nginx.cn/4658.html

posted @ 2021-01-13 10:47  _不正  阅读(221)  评论(0编辑  收藏  举报