nginx 配置中 root 与 alias 关键字区别

今天在客户现场帮助调试的时候,发现配置了一个nginx的location块一直访问不到,之前一直没注意这地方的区别,所以有了这个记录过程

描述

配置文件内容如下:

    location /demo/ {
        root /usr/share/ngin/html/dist/;
        index index.html;
    }
  • 我需要访问 /usr/share/ngin/html/dist/站点下面的 index.html文件
  • 但是实际上述配置访问:http://localhost/demo/index.html的时候返回的是 404,并没有找到这个文件所在位置

分析

  • rootalias都是 nginx用来指定文件路径的方式
  • 区别在于它们对 URL处理方法不同,前者带有 location 的路径,后者没有带路径
关键字 用法
root 关键字 实际访问的是:/usr/share/ngin/html/dist/demo/index.html
alias 关键字 实际访问的是:/usr/share/ngin/html/dist/index.html

解决

  • 所以上述问题我需要修改成以下方式即可实现我的需求
    location /demo/ {
        alias /usr/share/ngin/html/dist/;
        index index.html;
    }
  • 访问 :http://localhost/demo/index.html就能直接访问到 /usr/share/ngin/html/dist/ 路径下的 index.html 文件了

你可能感兴趣的:(Linux运维日常,nginx,服务器,运维)