Nginx中 root、alias的区别

537 阅读1分钟

nginx 中 location、alias、root 添加斜杠 和 真实路径之间的关系

1. 区别

  • root的最终路径是:root的值 + location的值 + 剩余的路径
location /dx {
    root /usr/abc/cc;
    index index.html index.htm;
}

当访问 http://xxxx/dx 时 真实的路径是:/usr/abc/cc/dx

  • alias的最终路径是:alias的值 替换掉location的值 + 剩余的路径
location /dx {
    alias /usr/abc/cc
    index index.html index.htm
}

当访问 http://xxxx/dx 时 真实的路径是:/usr/abc/cc

2. 几种组合方式

rootalias

  1. 后面都没有 /
【root】
    location /abc {
        root /usr/xx/xixihah
    }
    
真实地址: http://ip/abc -> /usr/xx/xixihah/abc
【alias】
    location /abc {
        alias /usr/xx/xixihah
    }
    
真实地址: http://ip/abc -> /usr/xx/xixihah
  1. 后面都有 /
【root】
    location /abc/ {
        root /usr/xx/xixi/
    }
    
真实地址: http://ip/abc/ -> /usr/xx/xixi//abc/
【alias】
    location /abc/ {
        alias /usr/xx/xixi/
    }
    
真实地址: http://ip/abc/ -> /usr/xx/xixi/
  1. location 有 / root 无 /
【root】
    location /abc/ {
        root /usr/xx/xixi
    }
    
真实地址:http://ip/abc/ -> /usr/xx/xixi/abc/
【alias】
    location /abc/ {
        alias /usr/xx/xixi
    }
    
真实地址:http://ip/abc/ -> /usr/xx/xixi
  1. location 无 / root 有 /
【root】
    location /abc {
        root /usr/xx/xixi/
    }
    
真实地址:http://ip/abc -> /usr/xx/xixi//abc
【alias】
    location /abc {
        alias /usr/xx/xixi/
    }
    
真实地址:http://ip/abc -> /usr/xx/xixi/

3. location下root alias配置、项目文件夹名、项目的路由、路径前缀的关系

image.png