Nginx 中 root 指令和 alias 指令的区别

我们在配置 Nginx 时,往往会参考网上的一些文章。同时有时候,也会看一些 Nginx 的视频教程。但是你会发现,A 文章中的配置使用的是 root,B 文章中的配置使用的是 alias。那么这两个参数到底是有什么区别呢?今天我们一起来说一说。

看到这篇文章,我相信有些人是不愿意的。你个开发的怎么老扯运维?

哎,说实话啊,其实我也不想搞,但是你不搞你就得下课。为什么呢?因为在国内是分不清这是谁的工作,哪是谁的工作的?你搞后端的,你前端得会一点吧,你得学点运维吧,甚至有人还想让你会点硬件知识吧。说实话,我学运维也是被逼的。谁他妈不想休息,不想玩呢?

Nginx 配置教程

有句话不是说的好,人人是运维,无人是运维。

好了,废话少扯,回到主题。

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 指令的区别

: » Nginx 中 root 指令和 alias 指令的区别

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/252770.html

(0)
上一篇 2022年5月4日
下一篇 2022年5月4日

相关推荐

发表回复

登录后才能评论