服务公告
蓝易云cdn:nginx教程:alias和root的区别
发布时间:2026-02-08 00:02
下面这篇内容,专门把 Nginx 里最容易踩坑的 root 和 alias 彻底讲清楚。不玩概念,不绕弯子,直接从路径映射逻辑入手,把“为什么 404”“为什么文件找不到”“什么时候该用谁”一次性解决。🙂
一、先给一句结论(先立规则)

root是“拼接 URI”,alias是“替换 URI”。
所有混乱、踩坑、404,本质都源于你没意识到这一点。
二、root 的工作原理(最常用,也最容易被误解)
1️⃣ 示例配置
location /static/ {
root /data/www;
}
2️⃣ 访问请求
请求地址:/static/logo.png
3️⃣ Nginx 实际查找的文件路径
/data/www/static/logo.png
4️⃣ 原理拆解(非常关键)
root会把 location 匹配到的 URI 原样拼接到 root 后面/static/并不会被去掉- 它只是“前缀路径 + URI”
👉 公式:
root路径 + 完整URI = 真实文件路径
5️⃣ root 的典型使用场景
- 网站根目录
- 前端项目(Vue / React / 静态站点)
- URI 和磁盘目录结构 一致
例如:
location / {
root /data/www/html;
index index.html;
}
访问 /index.html
实际路径是:
/data/www/html/index.html
这是最直觉、最安全的用法 ✅
三、alias 的工作原理(灵活,但极易踩雷)
1️⃣ 示例配置
location /static/ {
alias /data/assets/;
}
2️⃣ 访问请求
请求地址:/static/logo.png
3️⃣ Nginx 实际查找的文件路径
/data/assets/logo.png
4️⃣ 原理拆解(核心差异)
alias会 直接替换掉 location 匹配到的那一段 URI/static/被完全丢弃- 不再做路径拼接
👉 公式:
alias路径 + 去掉location后的URI
5️⃣ alias 最容易踩的坑 ⚠️
❌ 错误示例(非常常见)
location /static {
alias /data/assets;
}
问题在哪?
location没有/结尾alias也没有/结尾- URI 截取规则发生偏移
结果就是:访问直接 404
✅ 正确写法
location /static/ {
alias /data/assets/;
}
结论一句话:
用
alias,结尾的/必须对齐,这是铁律。
四、两者最直观对比(一眼就懂)
| 项目 | root | alias |
|---|---|---|
| URI 是否参与拼接 | 是 | 否 |
| location 前缀是否保留 | 保留 | 丢弃 |
| 配置复杂度 | 低 | 高 |
| 踩坑概率 | 低 | 高 |
| 灵活性 | 中 | 高 |
| 推荐新手使用 | ✅ | ❌ |
五、真实业务中该怎么选?(实话)
✅ 什么时候必须用 root
- 网站主目录
- 前端静态资源
- 路径结构统一
- CDN 回源、镜像站点
一句话:
路径“看起来是什么,就是什么” → 用 root
✅ 什么时候只能用 alias
已经是第一篇啦!
下一篇: 服务器路由命令有哪些常用技巧?