nginx - alias 和 root 的区别详解

文章目录

    • [1. 基本概念](#1. 基本概念)
    • [2. `root` 示例](#2. root 示例)
    • [3. `alias` 示例](#3. alias 示例)
    • [4. 最常见的坑](#4. 最常见的坑)
    • [5. 对比总结](#5. 对比总结)
    • [6. 推荐使用场景](#6. 推荐使用场景)
    • [7. 总结](#7. 总结)

在使用 Nginx 部署前端项目或者静态资源时,经常会遇到一个问题:到底该用 root 还是 alias?

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

1. 基本概念

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

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

2. root 示例

nginx 复制代码
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 示例

nginx 复制代码
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. 最常见的坑

很多人会这样写:

nginx 复制代码
location /static/ {
    root /var/www/images/;
}

然后请求:

复制代码
http://example.com/static/logo.png

Nginx 实际解析:

复制代码
最终路径 = /var/www/images/static/logo.png  ❌

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

nginx 复制代码
location /static/ {
    alias /var/www/images/;
}

这样路径才是:

复制代码
/var/www/images/logo.png ✅

5. 对比总结

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

6. 推荐使用场景

  • 适合用 root

    • 配置整个站点根目录:

      nginx 复制代码
      server {
          root /var/www/html;
          location / {
              index index.html;
          }
      }
  • 适合用 alias

    • 配置子路径资源映射:

      nginx 复制代码
      location /static/ {
          alias /var/www/project/static/;
      }

7. 总结

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

👉 口诀:

root 拼接,alias 替换。


👉点击进入 我的网站

相关推荐
Decay__13 分钟前
18_MySQL 智能巡检方案 —— 巡检项清单 / 一键巡检脚本 / 健康评分
运维·数据库·sql·mysql·架构
麦麦麦当劳大王24 分钟前
【油猴脚本】Boss直聘 岗位职责复制
开发语言·前端·javascript
小lu飞1 小时前
2026小红书小工具怎么制作:纯前端 ZIP 打包、沙箱限制与笔记挂载流程
前端·笔记·ai·ai编程
smallcelebration2 小时前
151 从0开始搭建后端项目
前端·firefox
wangruofeng2 小时前
手机和电脑传文件,除了微信还有 LocalSend
前端
excel2 小时前
基于 GPT 的自动发布文章接口方案:从一句话或一张图片生成并发布内容
前端·javascript·后端
其实防守也摸鱼4 小时前
个人学习 Pwn 思路:从基础到漏洞利用的进阶路径
大数据·前端·人工智能·chrome·算法·安全·网络安全
天远API5 小时前
零信任架构实战:基于天远运营商三要素详版V即时版构建自动化消费电子大促电商平台高价值权益秒杀与优惠券防羊毛高并发实名核验网关
运维·人工智能·架构·自动化
朱涛的自习室5 小时前
212 个需求、22 万行代码:Agent 接管开源项目的 19 天
android·前端·人工智能
aZhe的全栈知识分享5 小时前
AI 还原 Figma 效果总达不到预期?先别急着让它写代码
前端·后端·面试