Nginx指定文件路径有两种方式:root和alias,他们的区别在于对location后面的URI的解释逻辑不同。

  • root

寻找文件的逻辑是:root路径+location路径

  • alias

寻找文件的逻辑是:使用alias路径替换location路径。 另外:alias后面最好加上/,否则会出现找不到文件的情况,root后面则可有可无。 举个例子: 在服务器上新建两个a.txt文件,分别存放在/home/wwwroot/home/wwwroot/page1目录下,如下图所示: 在nginx中新建两个规则,分别使用root和alias指令,如下图所示: 运行结果: 在浏览器中访问:http://192.168.3.211:18003/page1/a.txt 按照上面nginx的配置,他会匹配上第一条规则,既使用root的方式寻址。因此找到的a.txt应该是/home/wwwroot/page1/a.txt。 结果如下图所示: 在浏览器中访问:http://192.168.3.211:18003/page2/a.txt 按照上面nginx的配置,他会匹配上第二条规则,既使用alias的方式寻址。因此找到的a.txt应该是/home/wwwroot/a.txt。 结果如下图所示: