nginx中alias和root的区别详解

 更新时间:2026年01月19日 11:01:17   作者:新节  
本文详细讲解了Nginx配置中root和alias的区别与使用场景,root会将请求路径拼接到指定目录后,而alias会替换location匹配的前缀路径,下面就来详细的介绍一下两者的区别,感兴趣的可以了解一下

很多同学第一次写配置时,常常把这两个混用,导致请求路径解析错误,文件 404。本文就来详细讲解 root 与 alias 的区别,并通过案例帮你彻底搞懂。

1. 基本概念

  • root:将 请求路径 拼接到 root 指定的目录下。
  • alias:将 location 匹配到的路径前缀 替换为 alias 指定的目录。

一句话总结: 👉 root拼接路径alias路径替换

2.root示例

location /static/ {
    root /var/www/html;
}

请求:

http://example.com/static/logo.png

Nginx 的解析过程:

root = /var/www/html
location 匹配 /static/
请求路径 = /static/logo.png

最终文件路径 = /var/www/html/static/logo.png

✅ 注意:/static/ 仍然会拼接到 root 后面。

3.alias示例

location /static/ {
    alias /var/www/images/;
}

请求:

http://example.com/static/logo.png

Nginx 的解析过程:

alias = /var/www/images/
location 匹配 /static/
去掉 /static/,剩下 /logo.png

最终文件路径 = /var/www/images/logo.png

✅ 注意:/static/ 被完全替换成了 /var/www/images/

4. 最常见的坑

很多人会这样写:

location /static/ {
    root /var/www/images/;
}

然后请求:

http://example.com/static/logo.png

Nginx 实际解析:

最终路径 = /var/www/images/static/logo.png  ❌

因为 root 会把 location 前缀 /static/ 拼接到后面。正确写法应该是:

location /static/ {
    alias /var/www/images/;
}

这样路径才是:

/var/www/images/logo.png ✅

5. 对比总结

特性rootalias
作用方式拼接请求路径替换 location 前缀
最终路径root + location + 请求剩余路径alias + 请求去掉 location 部分
常见用途整个站点的根目录单独路径映射到特殊目录
常见错误多拼一层目录忘记在路径后加 /

6. 推荐使用场景

  • 适合用 root

    • 配置整个站点根目录:

      server {
          root /var/www/html;
          location / {
              index index.html;
          }
      }
      
  • 适合用 alias

    • 配置子路径资源映射:

      location /static/ {
          alias /var/www/project/static/;
      }
      

7. 总结

  • root = 拼接路径,常用于全局网站目录。
  • alias = 替换路径,常用于某个子路径单独映射。
  • 如果要把 /static/ URL 对应到 /var/www/images/ 目录,记得用 alias
  • 如果要整个站点都从 /var/www/html 提供,记得用 root

👉 口诀:

root 拼接,alias 替换。

到此这篇关于nginx中alias和root的区别详解的文章就介绍到这了,更多相关nginx alias和root区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nginx 流控使用的项目实践

    nginx 流控使用的项目实践

    本文主要介绍了nginx 流控使用的项目实践
    2024-03-03
  • nginx经过多层代理后获取真实来源ip过程详解

    nginx经过多层代理后获取真实来源ip过程详解

    这篇文章主要介绍了nginx经过多层代理后获取真实来源ip过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • nginx 基本配置与参数说明详细介绍

    nginx 基本配置与参数说明详细介绍

    这篇文章主要介绍了nginx 基本配置与参数说明详细介绍的相关资料,需要的朋友可以参考下
    2016-10-10
  • 使用ngxtop实时监控Nginx日志文件的示例代码

    使用ngxtop实时监控Nginx日志文件的示例代码

    在Nginx日志分析领域,ngxtop是一款强大的实时监控工具,它能够即时解析Nginx的访问日志文件,提供直观、可定制的实时统计信息,帮助管理员更好地了解服务器的运行状况和Web流量,本文给大家介绍使用ngxtop实时监控Nginx日志文件的示例代码,需要的朋友可以参考下
    2024-01-01
  • Nginx内网单机反向代理的实现

    Nginx内网单机反向代理的实现

    本文主要介绍了Nginx内网单机反向代理的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Mac M1 Nginx 配置多站点的实现

    Mac M1 Nginx 配置多站点的实现

    这篇文章主要介绍了Mac M1 Nginx 配置多站点的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • nginx如何限制访问某些url

    nginx如何限制访问某些url

    这篇文章主要关于介绍了nginx如何限制访问某些url的相关资料,nginx是非常出色web服务器,对于静态文件的处理非常高效,同时它的代理转发功能和其它后台服务器搭配起来也非常的简单高效,需要的朋友可以参考下
    2023-08-08
  • Nginx报错“Too many open files”的问题解决

    Nginx报错“Too many open files”的问题解决

    本文主要介绍了Nginx报错“Too many open files”的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-05-05
  • nginx通过四层代理实现端口转发的示例代码

    nginx通过四层代理实现端口转发的示例代码

    本文主要介绍了nginx通过四层代理实现端口转发,将原IP的3306端口请求转至新IP的3306端口,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2025-07-07
  • 你知道Nginx吗,利用Nginx反向代理的操作方法

    你知道Nginx吗,利用Nginx反向代理的操作方法

    Nginx是一个高性能的HTTP和反向代理服务器,可以用于反向代理,客户端只与Nginx交互,而不知道后端服务器的存在,以下是一个简单的Nginx反向代理配置示例,感兴趣的朋友跟随小编一起看看吧
    2024-12-12

最新评论