Nginx 中 alias 和 root 的区别

2023-10-27

一、语法说明
  • alias

    • 采用 alias 配置的资源目录必须是准确的。localtion 正则匹配到 path 后,直接在 alias 定义的目录下查找。

    • 采用 alias 标签配置资源路径的 localtion 块中不能使用 rewritebreak

    • 采用 alias 标签配置的资源目录后面必须要加上 / 符号。

  • root

    • 采用 root 配置资源目录,实际资源目录必须设置为 localtion 正则匹配的 path 关键字的上一级目录。

    • 这个 path 正则匹配的关键字也必须是 root 后面定义路径中真实存在的资源目录,因为 localtion 正则匹配到 path 后,根据 root 再带上 path 本身资源路径名称去查找资源。

P.S

  • 采用 alias 配置的资源目录,localtion 正则匹配的 path 关键字后面不带 / 符号,那么请求访问这个 pathurl 地址中带不带 / 都不会影响访问,因为此机制在访问的时候, Nginx 会自动加上 /

  • 采用 alias 配置的资源目录,localtion 正则匹配的 path 关键字后面带上 / 符号,那么请求访问这个 pathurl 地址中必须带上 /,因为此机制 Nginx 不会自动加上 /,如果不手动加上 / ,那么在访问的时候就会出现 404所以建议 localtion 正则匹配的 path 关键字后面不带 / 符号,要求alias 标签配置的资源目录后面必须要加上 / 符号

  • 采用 root 配置的资源目录,localtion 正则匹配的 path 后面带不带 / 都不会影响访问

二、试验论证
  1. 前置约定

    假设 Nginx 配置的域名为 www.rambo123.com

  2. 资源目录文件夹的名称和 path 一致

    示例一

    location /shop/ {
        alias /opt/web/shop/;
        index  index.html index.htm;
    }
    

    以上通过 alias 配置资源目录,访问 www.rambo123.com/shop/index.html 实际指定的是 /opt/web/shop/index.html

    P.S

    alias 指定的资源目录后面必须要加上 / ,否则无法访问

    示例二

    采用 root 改造示例一

    localtion /shop/ {
        root /opt/web/;
        index  index.html index.htm;
    }
    

    以上通过 root 改造示例一的配置以后,达到的访问效果一致。通过 root 配置资源目录,访问 www.rambo123.com/shop/index.html 实际指定的是 /opt/web/shop/index.html

  3. 资源目录文件夹的名称和 path 不一致

    示例三

    localtion /web/ {
        alias /opt/www/html/;
        index  index.html index.htm;
    }
    

    以上通过 alias 配置资源目录,访问 www.rambo123.com/web/index.html 实际指定的是 /opt/www/html/index.html

    示例四

    采用 root 改造示例三

    如果非要采用 root 指定资源的方式来改造示例三,就只能通过软连的方式来实现

    # 为 html 创建软链接(保持 /opt/www/html 与 /opt/www/web 内容一致)
    ln -s /opt/www/web /opt/www/html 
    
    # 在进行 root 的配置
    lcation /web/ {
        root /opt/www/;
        index index.html index.htm;
    }
    
三、经验总结
  • localtion / 中配置 root 目录

  • location /path 中配置 alias 虚拟目录

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nginx 中 alias 和 root 的区别 的相关文章

随机推荐

  • QT代码,重载函数d_func()声明形式分析和调用关系分析

    QT代码 重载函数d func 声明形式分析和调用关系分析 define X DECLARE PRIVATE Class inline Class Private d func return reinterpret cast
  • Linux uboot顶层makefile详解 一

    VERSION 2016 主版本号 PATCHLEVEL 03 补丁版本号 SUBLEVEL 次版本号 EXTRAVERSION 附加版本信息 NAME MAKEFLAGS rR include dir CURDIR rR 表示禁止使用内置
  • 快速复习一遍C++基础知识点

    暂定月计划 1实现DSA基础算法 2完成一个STL库 3在Linux上加强相关知识 4git巩固 5OJ增强代码实现能力 今天先快读复习一遍C 知识点 想把peral读完 1 引用 交换两个数示例 C语言中 void swap int a
  • Redis 学习笔记4: Redis 3.2.1 集群搭建

    在CenOS 6 7 linux环境下搭建Redis 集群环境 1 下载最新的Redis版本 本人下载的Redis版本是3 2 1版本 下载之后 解压 编译 make 具体操作可以参考我的博文 Redis 学习笔记1 CentOS 6 7下
  • 使用navicat需要安装mysql吗_[转载] windows安装mysql及使用navicat连接

    参考资料 1 https blog csdn net u013235478 article details 50623693 2 https blog csdn net qq 35436635 article details 8012602
  • 广告公司到底干什么的?欣奥诚分享

    广告公司到底干什么的 这篇文章从产业的角度拆分广告业 还原一个真实的广告业出来 01 它们是谁 早年广告业有4类公司 品牌咨询类公司 设计创意类公司 媒介投放类公司 活动执行类公司 品牌咨询类公司 靠咨询服务为主营业务 为广告主提供品牌战略
  • 七、dokcer-compose部署springboot的jar

    1 准备 打包后包名为 ruoyi admin jar 增加接口 httpL ip port common test han 环境变量预application yml 中REDIS HOSTt的值 去环境变量去找 如果找不到REDIS HO
  • 点云基本概念

    文章目录 一 三维数据的表现形式 二 点云的概念 三 点云的特点 四 点云的获取方式 激光雷达 结构光 立体视觉 TOF相机 一 三维数据的表现形式 三维数据的表现形式一般分为四种 分别是点云 网格 体素与多视图 点云是三维空间中点的集合
  • 【新书推荐】【2020】MATLAB深度学习工具箱用户指南

    Table of contents Deep Networks Deep Learning in MATLAB What Is Deep Learning Try Deep Learning in 10 Lines of MATLAB Co
  • 监控实践: 基于K8S部署Prometheus+Grafana

    使用Prometheus对系统进行监控 使用Grafana进行数据展示 我的环境是K8S 我的部署方式是通过 yaml文件进行部署 已经部署文件上传到了Github 地址 https github com zeyangli devops o
  • SpringMVC系列(三)之CRUD增删改查

    目录 SpringMVC实现增删改查 1 导入相关依赖 2 添加配置文件 3 逆向生成对应的类 4 后台代码编写 5 前台代码编写 SpringMVC实现增删改查 1 导入相关依赖 pom xml
  • WeakMap弱引用

    let obj name 张三 name 张三 这个对象能够被读取到 因为obj这个变量名对它的引用 将引用覆盖掉 obj null 这个对象将会被从内存中移除 因为我们已经失去了对他的所有引用 let obj name 张三 let ar
  • 打开计算机窗口的快捷键是什么,打开多个窗口,用哪个快捷键可以将窗口切换?...

    2006 02 23 上网的时候 一打开窗口就是最小化 怎样可以一打开就是最大化呢 谢谢 IE具有 自动记忆功能 它能保存上一次关闭窗口后的状态参数 IE本身没有提供相关设置选项 不过可以借助修改注册表来实现 打开 注册表编辑器 找到 HK
  • MRTK-Unity简单入门

    前期工作 1 切换生成平台 UWP 2 Microsoft Mixed Reality Feature Tool导入和配置资源 Mixed Reality Toolkit Foundation 混合现实工具包基础 包是唯一的包 必须将它导入
  • 【Android】详解7.0带来的新工具类:DiffUtil

    http blog csdn net zxt0601 article details 52562770 一 概述 DiffUtil是support v7 24 2 0中的新工具类 它用来比较两个数据集 寻找出旧数据集 新数据集的最小变化量
  • 快速排序Java实现

    public class ksSort 快排 param args public static void main String args int test 1 9 5 7 8 2 4 quickSort quick Sort test f
  • 前端:react(柒):react 多个组件共享state

    柒 react 多个组件共享state 经常会遇到几个组件需要共用状态数据的情况 这种情况下 我们最好将这部分共享的状态提升至他们最近的父组件当中进行管理 const scaleNames c Celsius f Fahrenheit fu
  • 为什么PCB设计时经常进行电源平面的内缩

    我们可以发现 有的PCB在GND层和电源层会进行一定程度的电源平面内缩设计 那么大家有没有想过为什么要内缩呢 需要搞清楚这个问题 我们需要来先了解一个知识点 那就是 20H 原则 20H原则主要是为了减小电路板电磁辐射问题提出来的 在电路板
  • C# 操作JSON几种方式盘点

    C 操作JSON几种方式 通过两种在c 中常用的方式来实现对Json数据的序列化和反序列化 为了实现大多数的需求 我们采用稍微复杂一点的数据模型 首先我们有以下json数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14
  • Nginx 中 alias 和 root 的区别

    文章目录 一 语法说明 二 试验论证 三 经验总结 一 语法说明 alias 采用 alias 配置的资源目录必须是准确的 localtion 正则匹配到 path 后 直接在 alias 定义的目录下查找 采用 alias 标签配置资源路