nginx的location、root、alias指令用法和区别
作者:Gakki
root 与 alias 的定义
- nginx 指定文件的路径有两种方式 root 和 alias,指定的使用方法和作用域也不一样:
- 【 root 】:
- 语法:root path
- 默认值:root html
- 配置段:http、server、location、if
- 【 alias 】:
- 语法:alias path
- 配置段:location
root 与 alias 的区别
- root 与 alias 主要区别在于 nginx 如何拼接 location 后面的 url ,这会导致两者会以不同的方式将请求映射到服务器文件上。
- root 的处理结果是:root 路径 + location 路径
- alias 的处理结果是:alias 路径替换 location 路径(也就是不会加上 location 路径)
注: alias 后面必须要用 /
结束,否证会找不到文件的。而 root 则可有可无。
举例
root 实例:
location ^~ /test/ {
root /home/Gakki/test_report/;
}
- 解释:当请求
htpp://localhost:端口号/test/f.html
时,web 服务器将会返回服务器上的/home/Gakki/test_report/f.html/test/f.html
的文件。
alias 实例:
location ^~ /test/ {
alias /home/Gakki/test_report/;
}
- 解释:当请求
htpp://localhost:端口号/test/f.html
时,web 服务器将会返回服务器上的/home/Gakki/test_report/f.html
的文件。alias 会把 location 配置的路径丢弃掉。
其他事项
- 使用 alias 的时,目录名后面一定要加
/
。不然会被认为是个文件,而找不到对应的目录;
-
alias 是一个目录别名的定义(即:只能位于 location 块汇中),root 则是最上层目录的定义,可以存在server、http 和 location 中;
本文标题:nginx的location、root、alias指令用法和区别
本文链接:https://www.haomeiwen.com/subject/puclurtx.html
网友评论