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 则是最上层目录的定义,可以存在serverhttplocation 中;

你可能感兴趣的:(nginx的location、root、alias指令用法和区别)