Nginx中root和alias的区别

文章目录


root和alias的区别

因为最近在整网站,我现在有个需求就是当用户访问www.wh.com跳转到门户网站,访问www.wh.com/admin 跳转到后台管理系统网站。我们该如何使用Nginx来完成呢,很重要的一点就是需要搞懂root和alias以及try_files的作用

直接上Nginx的配置文件进行分析:

    location / {
        root html/dist;
        index index.html index.htm;
        try_files $uri $uri/ /index.html;
    }
  • root html/dist;:
    此行设置网站根目录的路径为 html/dist。
    当请求根路径 / 时,将在 html/dist 目录中查找相应的文件。
server {
    listen              9001;
    server_name         www.wh.com;
    location /hello {
        root            /usr/local/var/www/;
    }
}
  • 当用户请求www.wh.com/hello/的时候,服务器返回的地址就是/usr/local/var/www/hello/index.html
    root的处理结果是:root路径+location路径
location ^~ /admin {
    alias /usr/local/nginx/html/backup/;
    index index.html;
    try_files $uri $uri/ /admin/index.html;
}
  • 当用户在请求www.wh.com/admin时,服务器返回的地址应该是/usr/local/nginx/html/backup/index.html
    alias的处理结果是:使用alias路径替换location路径
  • try_files $uri $uri/ /admin/index.html;
    此行定义了文件的查找顺序,它将依次查询请求的文件或目录。
    • 首先尝试直接匹配请求的文件或目录
      $uri 是一个内置变量,表示当前请求的 URI,即 /admin
      如果请求为 /admin,则尝试查找 /usr/local/nginx/html/backup/index.html)。
    • 如果找不到匹配的文件或目录,尝试查找同名的目录
      如果未找到该文件,则尝试查找目录 $uri/,即 /admin/ 目录
      即尝试查找 /usr/local/nginx/html/backup/admin/
    • 如果以上两步都失败,则返回 /admin/index.html。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值