nginx中root与alias关键字的区别

2023-11-07

前言

近段时间秋招上岸了,于是每天疯狂补各种分布式基础,每天都在痛苦与快乐中度过。
在学习 nginx 的时候,遇到配置上的问题:root 与 alias 的区别,卡了大概三个小时,记录下来警醒自己不要再犯了。

正文

在使用 “/” 进行配置时,两者没有区别,一样都是在 root 或者 alias 指定的路径寻找文件,所以以下的过程与结果都跟此无关。

  • 测试用例的构建
location /static2 {
   root /static;
}

location /static1 {
   alias /static;
 }
  • 图片示例及存放位置

2.jpeg : /static/

5.jpeg : /static/static2/

  • 启动 nginx 并输入 url

http://192.168.99.100:8091/static1/2.jpeg

http://192.168.99.100:8091/static2/5.jpeg

  • 结果

  • 结果分析
    从访问 url,映射关系 relation 以及文件位置 location 综合来看,可以得出以下规律:

2.jpeg : alias = location !=url

5.jpeg : root + location = url

  • 结论

个人认为,alias 起到一个文件路径重定向的功能,能有效隐藏文件真实路径。相对来说, root 更像在指定 root 文件夹中寻找文件,文件路径树容易被猜测导致安全问题的发生。

    本文首发于 cartoon的博客
    转载请注明出处:https://cartoonyu.github.io/cartoon-blog/post/nginx/nginx中root与alias关键字的区别/

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

nginx中root与alias关键字的区别 的相关文章

  • 使用 nginx 代理时在 RStudio 中运行闪亮的应用程序

    我正在尝试使用通过 nginx 代理的 RStudio 服务器来开发一个闪亮的应用程序 当我使用 RStudio 而不是服务器 来运行闪亮的应用程序时 一切正常 但是 当我通过代理 RStudio 运行时 该应用程序出现在 查看器 窗格中
  • 站点启用/中不允许使用 nginx“mail”和“stream”指令

    当我尝试在 nginx 中使用流或邮件指令时遇到问题 我正在使用 nginx 1 16 1 和 Ubuntu 18 04 4 LTS 这是我的 nginx conf user www data worker processes auto p
  • Amazon ECS - 在 Docker 入口点上使用 IAM 角色时权限被拒绝

    我正在寻找一种将机密 证书注入 Amazon ECS 容器的方法 就我而言 它是一个简单的 nginx 容器 我一直在使用 AWS Parameter Store 关注这篇文章 https aws amazon com blogs comp
  • 使用 client_body_in_file_only 进行 nginx 文件上传

    晚上好 我需要将静态内容上传到 nginx 服务器 1 9 因此上传模块不适用于此版本 我读过这篇文章 Nginx 直接文件上传 无需通过后端传递 https coderwall com p swgfvw nginx direct file
  • Docker 与 nginx 组合不断显示欢迎页面

    我是新来的docker并尝试使用最简单的 docker compose yml 显示一个 hello world 页面 并在此基础上构建最终完整的LEMP堆栈它将与我的服务器具有相同的配置 然而大多数教程已经过时 并且有很多使用方法dock
  • 比较 nginx+Apache+mod_wsgi 与 nginx+uWSGI?

    在生产中使用 nginx Apache mod wsgi 与 nginx uWSGI vurtualenv 有何优缺点 我在自 2007 年以来开发的 mod wsgi 中看到了第一个变体的优点 并且具有更稳定的版本和易于管理 第二种变体的
  • ./manage.py 使用 https 运行服务器

    manage py 运行服务器 0 0 0 0 8000 我使用上面的行作为我从 github 借用的代码的一部分 https github com ribeiroit boh puppet https github com ribeiro
  • 如何将多个域路由到多个节点应用程序?

    我习惯了典型的 Lamp Web 托管环境 您只需单击 cpanel 中的几个按钮 您的域就会被分区并映射到 htdocs 中的文件夹 我经常使用 Node js 但做同样的事情似乎并不那么简单 如果我有多个节点应用程序 并且我想将doma
  • nginx - 记录 SSL 握手失败

    我正在运行启用了 SSL 的 nginx 服务器 我的协议 密码设置相当安全 我已经在 ssllabs com 上检查过它们 但是 因为这是一个由我无法控制的 http 客户端调用的 Web 服务 所以我担心兼容性 重点是 有没有办法在我的
  • kubernetes 集群中 django 应用程序的 Nginx 配置

    我在为部署在 kubernetes 中的 django 应用程序创建 nginx 配置文件时遇到困难 Nginx 和 app 是同一集群中的两个独立容器 据我了解 容器可以通过 127 0 0 1 XX 和主机名相互通信 我为此使用 min
  • kubernetes nginx ingress 无法将 HTTP 重定向到 HTTPS

    我有一个托管在 Google Cloud 平台中的网络应用程序 该应用程序位于负载均衡器后面 而负载均衡器本身位于入口后面 入口设置了 SSL 证书 并按预期接受 HTTPS 连接 但有一个问题 我无法让它将非 HTTPS 连接重定向到 H
  • Nginx - 自定义 404 页面

    Nginx PHP 在 fastCGI 上 对我来说非常有用 当我输入不存在的 PHP 文件的路径时 我不会得到默认的 404 错误页面 任何无效的 html 文件都会出现该错误页面 而只会得到 未指定输入文件 如何自定义此 404 错误页
  • nginx 反向代理 websocket

    nginx 现在支持代理 websockets 但我无法找到任何有关如何在没有单独的情况下执行此操作的信息location应用于使用 websocket 的 URI 的块 我见过一些人推荐这种方法的一些变体 location proxy h
  • 如何在运行 NGINX Docker 容器的 AWS EC2 上启用 HTTPS?

    我在 AWS 上有一个运行 Amazon Linux 2 的 EC2 实例 在上面 我安装了 Git docker 和 docker compose 完成后 我克隆了我的存储库并运行docker compose up让我的生产环境启动 我访
  • 我可以在 Nginx Conf 中添加多少个服务器块

    知道我可以在 Nginx 配置中添加多少个服务器块吗 我需要将它用于具有多个子域的反向代理 每个客户端一个子域 它能成功支持 10 000 个服务器块吗 有没有相关的基准研究 这实际上并不是一个你有多少人的问题can但你有多少 能够妥善处理
  • nginx 和 uwsgi 非常大的文件上传(>3Gb)

    也许有人知道该怎么做 我正在尝试上传大于 3Gb 的文件 没问题 如果我使用以下配置上传高达 2Gb 的文件 Nginx client max body size 5g client body in file only clean clie
  • Kubernetes Ingress 在 nginx 反向代理后面运行

    我已经在可以从互联网访问的服务器上安装了 minikube 我创建了一个可用的 kubernetes 服务 gt kubectl get service myservice NAME CLUSTER IP EXTERNAL IP PORT
  • Nginx 是否也缓冲来自客户端的 http 请求?

    我知道 Nginx 可以缓冲来自上游服务器的响应 我的问题是 Nginx 是否也缓冲来自客户端的 http 请求 我的意思是 如果 Nginx 从客户端收到 http 请求 它是否立即与上游服务器建立连接 或者它会在收到整个http请求后创
  • Nginx - Heroku Docker - 是否可以在 Heroku 上运行 Nginx 作为反向代理

    我试图弄清楚如何使用 Nginx 在 Heroku 应用程序上构建反向代理 问题是 Heroku 似乎每个应用程序只接受一个容器 但我的应用程序系统至少会使用三个容器 一个用于 Nginx 一个用于我的应用程序前端 一个用于我的业务逻辑服务
  • 为什么我会收到 ElasticBeanstalk::ExternalInitationError?

    我的应用程序基于 RubyOnRails 构建 并使用乘客部署为弹性 beanstalk 应用程序 我尝试向 nginx 服务器添加标头并重新启动它 这是我的配置文件 是 aws elastic beanstalk 中 ebextensio

随机推荐

  • 2022-15-Java 设计模式-抽象工厂模式

    在工厂方法模式中 我们使用一个工厂创建一个产品 一个具体工厂对应一个具体产品 但有时候我们需要一个工厂能够提供多个产品对象 而不是单一的对象 这个时候我们就需要使用抽象工厂模式 在介绍抽象工厂模式前 我们先厘清两个概念 产品等级结构 产品等
  • 【Java书笔记】:《Redis 深度历险:核心原理和应用实践》分布式锁,延时队列,位图,HyperLogLog,布隆过滤器,漏斗限流,GeoHash,Scan,管道,事务,主从,Redis源码

    Redis 深度历险 核心原理和应用实践 目 录 开篇 授人以鱼不若授人以渔 Redis 可以用来做什么 7 由 Redis 面试想到的 7 小册的内容范围 8 Redis 可以做什么 8 基础 万丈高楼平地起 Redis 基础数据结构 1
  • 备战数学建模34-BP神经网络预测2

    目录 一 辛烷值的预测 1 题目分析与原理介绍 2 神经网络建立过程 3 预测结果分析 BP神经网络模型 包含输入层 隐含层和输出层 正向传播过程是通过输入样本到输入层 通过输入层经过各层隐藏层 最后到达输出层 若输出层输出值与期望值的输出
  • STM32学习----通用定时器的应用(输入捕获,测量周期和占空比)

    输入捕获的应用 输入捕获一般是用来测量输入信号的频率 占空比这些信息 输入捕获的原理 捕获的原理 1 信号从某个通道输入 比如通道1 CH1 2 经过滤波和边沿检测后产生两个一模一样的信号TI1FP1和TI1FP2 TI1FP1送给捕获通道
  • 身份证二进制数据解析

    头数据 AA AA AA 96 69 05 08 00 00 90 01 00 04 00 文本信息 256个字节 使用Unicode解码 得到中文信息 姓名 30个字节 性别 2个字节 民族 4个字节 出生日期 16个字节 地址 70个字
  • 数据治理项目工作方式总结

    1 当工作完成后 每天完成对应的计划任务列表分析 图表展示 代码展示等汇总报告 PPT 是简单的方式 word excel也是可以的 这边习惯用word 写一写文档之类的 excel 做工作拆分和总结 PPT 做工作汇报 2 没有的话 可以
  • 入门数据结构,c语言实现循环队列实现(详细篇)。

    目录 一 前言 二 循环队列的概念 三 实现循环队列 1 头文件与特殊函数介绍 2 循环队列的结构体 3 队列的初始化 4 判断队列是否为空 5 队列的进队操作 6 队列的出队操作 7 返回队头 8 返回队列长度 9 放回队列容量大小 10
  • MIB文件解析,常见报错整理

    我用的是这个工具FmMib 需要的可以给我留言 目前网上关于类似的报错整理还是挺少的 可能这个知识点用的也不多 我开始解析mib文件时 小问题还是挺多的 很多书写问题 格式都是自己手动改源文件才可以解析出来 建议在做类似解析的时候可以先学习
  • 基础11:深浅拷贝

    1 浅拷贝 创建一个新对象 这个对象有着原始对象属性值的一份精确拷贝 如果属性是基本类型 拷贝的就是基本类型的值 如果属性是引用类型 拷贝的就是内存地址 所以如果其中一个对象改变了这个地址 就会影响到另一个对象 简单来说 浅拷贝只拷贝了对象
  • java jdbc 优化_调参优化jdbc初始连接时的性能消耗

    背景 mysql connector java JDBC驱动是java开发数据库相关应用重要的组件 绝大多数场景下默认的设置即可以满足需求 但最近有个业务场景 导致了需要重新审视对jdbc的使用 这篇文章用以记录 描述 同事反馈业务在集群扩
  • Java对一维数组倒叙排列

    直接数组元素对换 public class ReversTest public static void main String args int arr 25 4 15 7 8 String strings ramer jelly bean
  • ChatGPT 吹响了第四次产业革命(AI 革命)的号角

    目录 未来 AI 大模型的发展趋势 通用多模态大模型 语言文字是多模态大模型的核心
  • vue.config.js 配置的文件

    vue config js是一个可选的配置文件 用于配置Vue CLI构建的项目 如webpack的配置等 使用vue config js 可以在项目的根目录下创建一个JavaScript文件 并在该文件中进行配置 下面是一些在vue co
  • JAVA-JDK1.8介绍

    Java JDK 1 8 Java Development Kit的第8个主要版本 Java JDK 1 8是Java编程语言的一个重要版本 引入了一些新的功能和改进 同时也修复了几项bug 在本博客中 我将详细介绍Java JDK 1 8
  • ESP8266常见问题汇总——转载自官网

    ESP8266 常见问题 本页面收集esp8266常见问题 概述 本文档主要介绍开发者在ESP8266开发中常见的一些问题 这些问题主要包括以下几大类 基本概念相关 ESP8266 相关 AiCloud 相关 固件编译调试相关 文档资料相关
  • leetcode 376 摆动序列

    动态规划 class Solution public int wiggleMaxLength int nums if nums length 1 return nums length 动态规划 dp i 0 表示当前数字的子序列长度 dp
  • rabbitmq Attempting to connect to: [localhost:5672] SocketExceptio:Socket Closed

    今天使用spring cloud stream for rabbitmq启动项目报错 2019 05 03 13 22 27 350 INFO file 18160 main o s a r c CachingConnectionFacto
  • FAPI专题-8:5G FAPI接口 - 中文规范-4- P7消息格式

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 120645757 目录 第3章 主要的
  • 若依管理系统RuoYi-Vue(二):权限系统设计详解

    本篇文章试图讲解若依Vue系统中的权限设计原理以及实战 为什么是 试图 因为这也是摸索着理解的 不一定准 若依Vue系统中的权限管理部分的功能都集中在了系统管理菜单模块中 如下图所示 其中权限部分主要涉及到了用户管理 角色管理 菜单管理 部
  • nginx中root与alias关键字的区别

    前言 近段时间秋招上岸了 于是每天疯狂补各种分布式基础 每天都在痛苦与快乐中度过 在学习 nginx 的时候 遇到配置上的问题 root 与 alias 的区别 卡了大概三个小时 记录下来警醒自己不要再犯了 正文 在使用 进行配置时 两者没