首页 > 系统相关 >#yyds干货盘点#nginx的root 与 alias

#yyds干货盘点#nginx的root 与 alias

时间:2023-03-03 23:31:58浏览次数:48  
标签:yyds www nginx server alias html location root

nginx 指定文件路径有两种方式 root 和 alias,主要区别在于 nginx 如何解释 location 后面的 uri,这会使两者分别以不同的方式将请求映射到服务器文件上。它们的使用方法和作用域:

[root]
语法:root path
默认值:root html
配置段:http、server、location、if
处理结果:root 路径+ location 路径

[alias]
语法:alias path
配置段:location
处理结果:使用 alias 路径替换 location 路径

如果一个请求的 URI 是/t/a.html 时,它们表现如下:

# 返回/www/root/html/t/a.html的文件
location ^~ /t/ {
root /www/root/html/;
}

# 返回/www/root/html/new_t/a.html的文件
# 把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。
location ^~ /t/ {
alias /www/root/html/new_t/;
}

可以看出 alias 是一个目录别名的定义,root 则是最上层目录的定义。另外 alias 后面必须要用​​/​​结束,否则会找不到文件的,而 root 则可有可无。

那如果 server 和 location 中都出现 root,是怎样的优先级呢??

http {
server {
listen 80;
server_name www.abc.com;
root /home/www/website/;
location / {
root /home/www/ts/;
index index.html;
}
}
}

简单的来说是就近原则,如果 location 中能匹配到,就是用 location 中的 root 配置,忽略 server 中的 root,当 location 中匹配不到的时候,则使用 server 中的 root 配置。


标签:yyds,www,nginx,server,alias,html,location,root
From: https://blog.51cto.com/u_11365839/6099163

相关文章