我们在配置 Nginx 时,往往会参考网上的一些文章。同时有时候,也会看一些 Nginx 的视频教程。但是你会发现,A 文章中的配置使用的是 root,B 文章中的配置使用的是 alias。那么这两个参数到底是有什么区别呢?今天我们一起来说一说。
看到这篇文章,我相信有些人是不愿意的。你个开发的怎么老扯运维?
哎,说实话啊,其实我也不想搞,但是你不搞你就得下课。为什么呢?因为在国内是分不清这是谁的工作,哪是谁的工作的?你搞后端的,你前端得会一点吧,你得学点运维吧,甚至有人还想让你会点硬件知识吧。说实话,我学运维也是被逼的。谁他妈不想休息,不想玩呢?
有句话不是说的好,人人是运维,无人是运维。
好了,废话少扯,回到主题。
Nginx 指定文件路径有两种方式 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 则可有可无。alias 只能位于 location 块中,而 root 可以在 location 指令块外。
下面看一个简单的例子。
location /xttblog/ { alias /www/xttblog/; }
上面这个配置,当访问 /xttblog/ 目录时,Nginx 会去 /www/test/ 目录找文件。
location /xttblog/ { root /www/xttblog; }
按照这种配置,则访问 /xttblog/ 目录下的文件时,nginx 会去 /www/xttblog/xttblog/ 目录下找文件。即,root 会使 Nginx 去找 root 后面的路径 + location 上配置的路径。“/www/xttblog/xttblog/” = “/www/xttblog” + “/xttblog/”。
: » Nginx 中 root 指令和 alias 指令的区别
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/252770.html