本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
我们在配置 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/”。
最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!
本文原文出处:业余草: » Nginx 中 root 指令和 alias 指令的区别