Nginx配置里alias和root的区别

news/2025/9/22 14:09:38/文章来源:https://www.cnblogs.com/zp123456/p/19105176

我们用一种非常容易理解的方式来解释 alias 和 root 的区别。

核心比喻:问路

想象一下你在问路:

  • root 就像告诉你一个「大本营」的地址

  • alias 就像给你一个「精确的目的地」地址


1. root 指令:告诉你大本营在哪里

工作方式:请求的URI路径会完整地追加到root指定的路径后面。

举个例子:

nginx
location /images/ {root /data/website;
}

访问过程:

  • 你访问:http://yoursite.com/images/cat.jpg

  • Nginx 的处理思路:

    1. 找到「大本营」:/data/website

    2. 把请求的完整路径 /images/cat.jpg 直接拼接到大本营后面

    3. 最终去找:/data/website/images/cat.jpg

✅ 适用场景: 设置静态文件的根目录


2. alias 指令:给你精确的目的地地址

工作方式:用alias的路径完全替换location匹配到的部分。

举个例子:

nginx
location /static/ {alias /data/website/assets/;
}

访问过程:

  • 你访问:http://yoursite.com/static/logo.png

  • Nginx 的处理思路:

    1. 匹配到 /static/ 这部分

    2. 用 /data/website/assets/ 完全替换掉 /static/

    3. 最终去找:/data/website/assets/logo.png

✅ 适用场景: 将URL路径映射到文件系统完全不同的路径


对比表格

 
特征rootalias
工作方式 追加完整URI路径 替换匹配到的部分
思维模式 告诉你大本营 给你精确目的地
路径处理 root路径 + 完整URI alias路径 + (URI - 匹配部分)
常用场景 静态文件根目录 特殊路径映射

最容易出错的例子

nginx
# 错误用法:想要访问 /data/files/download/test.txt
location /download/ {alias /data/files/;# 访问 /download/test.txt 会变成 /data/files/test.txt# 但文件实际在 /data/files/download/test.txt
}# 正确用法:
location /download/ {alias /data/files/download/;# 访问 /download/test.txt 会变成 /data/files/download/test.txt ✅
}

简单记忆口诀

「root是加,alias是换」

  • 用 root:路径会变长

  • 用 alias:路径会替换

记住这个口诀,你就基本不会用错了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909381.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国产DevOps生态崛起:Gitee如何赋能企业数字化转型

国产DevOps生态崛起:Gitee如何赋能企业数字化转型 在数字化转型浪潮席卷全球的当下,中国企业的IT架构正在经历前所未有的变革。根据《中国DevOps现状调查报告》最新数据显示,2022年国内企业DevOps实践率实现了显著增…

【OpenCV】10 图像滤波

作用 将一幅图像通过滤波器转换为另一幅图像。 滤波器又称为卷积核,滤波过程称为卷积。 卷积核 卷积核一般为奇数,如 3x3 5x5 7x7 为什么取奇数?增加padding 保证锚点在中间,防止图像偏移大小的影响? 在深度学习中…

基于java+springboot的社区居民诊疗健康管理系统(源代码+文档+讲解视频) - 指南

基于java+springboot的社区居民诊疗健康管理系统(源代码+文档+讲解视频) - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font…

时序数据库IoTDB的六大实用场景盘点 - 指南

时序数据库IoTDB的六大实用场景盘点 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

50系GPU上安装MMCV

50系GPU上安装MMCV# env conda create --name my_env python=3.12 conda activate my_env pip install torch==2.8.0+cu129 torchvision==0.23.0+cu129 --index-url https://download.pytorch.org/whl/cu129 conda ins…

K8S的CoreDns配置文件添加域名解析

一、CoreDns的概述 负责为整个k8s集群提供 DNS 服务,属于DNS插件。基于dns的接口去实现集群内部的dns内部域名解析的一种能力。k8s集群创建后,会在kube-system名称空间下默认生成两个coredns的pod,所有pod的…

20250308_信安一把梭_web

流量分析, 应急响应, http, mysql,公众号信安一把梭Tags:流量分析,应急响应,http,mysql,信安一把梭 0x00. 题目某公司内网网络被黑客渗透,请分析流量,给出黑客使用的扫描器 某公司内网网络被黑客渗透,请分析流量,得…

nodify_介绍及安装

介绍 Nodify是一个WPF基于节点的编辑器控件,其中包含一系列节点、连接和连接器组件,旨在简化构建基于节点的工具的过程。 这是受虚幻引擎的蓝图视觉脚本系统启发,但仅专注于用户界面和用户交互部分。与蓝图不同,No…

MQTT协议(消息队列遥测传输)

MQTT协议 MQTT是一种极其轻量级的消息传输协议,专为低带宽、高延迟或不稳定的网络环境(如物联网IoT)而设计,它采用发布/订阅模式,非常适合 设备与服务器之前的通信。 一、MQTT是什么 MQTT 的全称是 Message Queui…

实用指南:ThinkPHP 6框架常见错误:htmlentities()函数参数类型问题解决

实用指南:ThinkPHP 6框架常见错误:htmlentities()函数参数类型问题解决2025-09-22 13:51 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: a…

完整教程:深入剖析 Chrome PartitionAlloc 内存池源码原理与性能调优实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

如何构建embeding 的就是pytorch 中

如何构建embeding 的就是pytorch 中pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco…

萤石设备视频接入平台EasyCVR国标GB28181视频平台整合铁路抑尘喷洒智能视频监控方案

萤石设备视频接入平台EasyCVR国标GB28181视频平台整合铁路抑尘喷洒智能视频监控方案一、建设背景与需求分析 铁路运输量的增长带来了粉尘污染的挑战。为了保障铁路运输的安全与环保,铁道部出台了《铁路煤炭运输抑尘技…

【低代码平台之应用构建展示】数智化贸易订单管理平台

贸易行业的企业,作为连接生产企业与客户的桥梁,业务管理往往面对诸多挑战:订单数量庞大,供货品种繁杂;供应商数量众多,分布范围广泛,管理难度大;结算方式多样,对账工作繁重,容易出错等等。这些问题会随着业务…

从零到Offer:Java Socket面试通关秘籍-Socket面试为何总让人“心跳加速”? - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

C# 第 17天 028 029接口,依赖反转,单元测试

胖接口:多要显示接口实现(C#语言独有的功能)

详细介绍:Linux驱动开发笔记(七)——并发与竞争(下)——自旋锁信号量互斥体

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年项目管理软件革命:AI与空间计算如何重塑企业协作范式

2025年项目管理软件革命:AI与空间计算如何重塑企业协作范式 全球项目管理软件市场正在经历一场由多重技术叠加驱动的深度变革。根据Gartner最新预测,到2025年,75%的企业将采用至少一种具备AI决策能力的项目管理工具…

Threading 串行VS并发

Threading 串行VS并发 IO 密集型 结果 >>> 串行开始... 下载https://www.baidu.com/成功,状态码为200 下载https://www.sina.com.cn/成功,状态码为200 下载https://www.bilibili.com/成功,状态码为412 耗时…

parallel index

select * from tablename tb为提高查询效率,可使用一下方法:(1)并行查询:/*+ parallel(tb,32) * / select /*+ parallel(tb,32) */ count(*) from leo1 tb; (2)强制走索引:/*+ index(tb, indexname) */ …