nginx中root与alias关键字的区别

前言
近段时间秋招上岸了,于是每天疯狂补各种分布式基础,每天都在痛苦与快乐中度过。
在学习 nginx 的时候,遇到配置上的问题:root 与 alias 的区别,卡了大概三个小时,记录下来警醒自己不要再犯了。
正文
在使用 “/” 进行配置时,两者没有区别,一样都是在 root 或者 alias 指定的路径寻找文件,所以以下的过程与结果都跟此无关。

  • 测试用例的构建
location /static2 { root /static; }location /static1 { alias /static; }

  • 图片示例及存放位置
2.jpeg : /static/
5.jpeg : /static/static2/
nginx中root与alias关键字的区别
文章图片
image
  • 启动 nginx 并输入 url
http://192.168.99.100:8091/static1/2.jpeg
http://192.168.99.100:8091/static2/5.jpeg
  • 结果

    nginx中root与alias关键字的区别
    文章图片
    image
  • 结果分析
    从访问 url,映射关系 relation 以及文件位置 location 综合来看,可以得出以下规律:
2.jpeg : alias = location !=url
5.jpeg : root + location = url
  • 结论
    个人认为,alias 起到一个文件路径重定向的功能,能有效隐藏文件真实路径。相对来说, root 更像在指定 root 文件夹中寻找文件,文件路径树容易被猜测导致安全问题的发生。
【nginx中root与alias关键字的区别】本文首发于 cartoon的博客
转载请注明出处:https://cartoonyu.github.io/cartoon-blog/post/nginx/nginx中root与alias关键字的区别/

    推荐阅读