Nginx解析:入门笔记

🌈 个人主页:danci_
🔥 系列专栏:《设计模式》《MYSQL》
💪🏻 制定明确可量化的目标,坚持默默的做事。


  

✨欢迎加入探索nginx之旅✨

    👋 大家好!文本学习和探索Nginx配置。✨欢迎踏入Nginx的奇妙世界!作为高性能Web服务器与反向代理的佼佼者,Nginx以它的轻量级、高并发处理能力,在全球范围内赢得了无数开发者的青睐。💡今天,就让我们一同揭开Nginx的神秘面纱,探索它如何为网站加速,赋能云端。

一、基本语法

location指令的基本语法如下:

location [=|~|~*|^~] uri { ... }

  • [=|~|~*|^~]:这部分是可选的修饰符,用于指定匹配的类型。
    • =:表示精确匹配。如果请求的URI与location后指定的字符串完全相等,则匹配成功。
    • ~:表示区分大小写的正则匹配。
    • ~*:表示不区分大小写的正则匹配。
    • ^~:表示URI以某个常规字符串开头,如果匹配成功,则不再进行正则表达式匹配。
  • uri:待匹配的请求字符串,可以是不包含正则表达式的标准URI,也可以是包含正则表达式的正则URI。

二、常见配置及作用

 

  1. 精确匹配(=
    • 作用:当请求的URI与location后指定的字符串完全相等时,直接应用该location块中的配置。
    • 示例:location = / { ... } 表示只有当请求的URI恰好为/时,才会应用该配置。
  2. 正则匹配(~ 和 ~*
    • 作用:通过正则表达式来匹配请求的URI,~区分大小写,~*不区分大小写。
    • 示例:location ~ \.(gif|jpg|png)$ { ... } 表示匹配所有以.gif.jpg.png结尾的请求,并执行相应配置。
  3. 前缀匹配(无修饰符和^~
    • 无修饰符:表示请求的URI以指定的字符串开头。Nginx会首先检查所有无修饰符的location块,并记录最长的匹配结果,然后才会进行正则匹配。
    • ^~:与无修饰符类似,也是前缀匹配,但如果匹配成功,则不再进行正则表达式的匹配。
    • 示例:location ^~ /images/ { ... } 表示匹配所有以/images/开头的请求,并且一旦匹配成功,将不再检查后续的正则表达式匹配。
  4. 根匹配(/
    • 作用:作为默认匹配,当没有任何其他location块匹配成功时,Nginx会使用根匹配(即/)来处理请求。
    • 示例:location / { ... } 表示匹配所有未被其他location块匹配的请求。

三、其他相关配置

location块中,还可以配置各种指令来控制请求的处理方式,如:

  • root:设置请求的根目录,Nginx将在这个目录下查找请求的资源。
  • alias:设置请求的别名目录,与root不同,alias会将请求的URI替换为指定的路径。
  • index:指定默认索引文件的名称,当请求的是一个目录时,Nginx会尝试返回该目录下的索引文件。
  • proxy_pass:将请求代理到后端服务器。
  • rewrite:重写请求的URI。
  • try_files:尝试不同的文件或路径,直到找到一个存在的文件或目录。

四、匹配优先级

Nginx在处理请求时,会按照以下顺序匹配location块:

  1. 精确匹配(=)。
  2. 前缀匹配(^~),如果匹配成功,则不再进行正则匹配。
  3. 正则匹配(~ 和 ~*),按配置文件中出现的顺序进行匹配。
  4. 前缀匹配(无修饰符),记录最长的匹配结果。
  5. 根匹配(/)。

当找到匹配的location块后,Nginx将停止搜索,并应用该块中的配置来处理请求。

    好了,今天分享到这里。希望你喜欢这次的探索之旅!不要忘记 "点赞" 和 "关注" 哦,我们下次见!🎈

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

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

相关文章

认知杂谈52

今天分享 有人说的一段争议性的话 I I 1拓展人脉很重要** 咱们活在这世上啊,得明白一件事儿,知识、逻辑能力和实战经验虽然重要,但确实都不是最关键的。真正关键的是要懂得怎么和那些手里有资源的人打交道。人脉那可真是一笔无形的大财富呢…

论文解读:《LAMM: Label Alignment for Multi-Modal Prompt Learning》

系列文章目录 文章目录 系列文章目录LAMM: Label Alignment for Multi-Modal Prompt Learning学习1、论文细节理解1、研究背景2、论文贡献3、方法框架4、研究思路5、实验6、限制 LAMM: Label Alignment for Multi-Modal Prompt Learning学习 1、论文细节理解 VL模型和下游任务…

C++ | Leetcode C++题解之第394题字符串解码

题目&#xff1a; 题解&#xff1a; class Solution { public:string src; size_t ptr;int getDigits() {int ret 0;while (ptr < src.size() && isdigit(src[ptr])) {ret ret * 10 src[ptr] - 0;}return ret;}string getString() {if (ptr src.size() || src[…

JS_对象的创建

JS声明对象的语法 通过new Object()直接创建对象 var person new Object(); // 给对象添加属性并赋值 person.name"张明"; person.age10; person.foods["苹果","橘子","香蕉","葡萄"]; // 给对象添加功能函数 person.eat …

数学建模笔记—— 主成分分析(PCA)

数学建模笔记—— 主成分分析 主成分分析1. 基本原理1.1 主成分分析方法1.2 数据降维1.3 主成分分析原理1.4 主成分分析思想 2. PCA的计算步骤3. 典型例题4. 主成分分析说明5. python代码实现 主成分分析 1. 基本原理 在实际问题研究中,多变量问题是经常会遇到的。变量太多,无…

顶层const和底层const

在C中&#xff0c;const修饰符用于声明常量&#xff0c;有两种常见的形式&#xff1a;顶层const和底层const&#xff0c;它们之间的区别在于它们修饰的对象及其在不同场景中的作用。 1. 顶层const (Top-level const) 顶层const用于修饰变量本身&#xff0c;使其成为常量。这意…

Jenkins 通过 Version Number Plugin 自动生成和管理构建的版本号

步骤 1&#xff1a;安装 Version Number Plugin 登录 Jenkins 的管理界面。进入 “Manage Jenkins” -> “Manage Plugins”。在 “Available” 选项卡中搜索 “Version Number Plugin”。选中并安装插件&#xff0c;完成后可能需要重启 Jenkins。 步骤 2&#xff1a;配置…

SQL进阶技巧:每年在校人数统计 | 区间重叠问题

目录 0 问题分析 1 数据准备 2 问题分析 3 小结 区间重叠问题 0 问题分析 有一个录取学生人数表 in_school_stu,记录的是每年录取学生的人数及录取学生的学制,计算每年在校学生人数。 1 数据准备 create table in_school_stu as ( select stack(5,1,2001,2,1200,2,2000…

Sui Narwhal and Tusk 共识协议笔记

一、Overwiew [ 整体流程: Client提交transaction到Narwhal Mempool。(Narwhal Mempool由一组worker和一个primary组成) Mempool接收到的Transaction->以Certificate的形式进行广播 由worker将交易打包为Batch,worker将Batch的hash发送给primary primary上运行了mempo…

关系代数 | 数据库SQL

文章目录 关系运算符笛卡尔积笛卡尔积应用 运算符符号含义集合运算符并∪交∩差-笛卡尔积专门的关系运算符选择σ投影π连接⋈除 关系运算符 笛卡尔积 集合运算符中&#xff0c;主要对笛卡尔积做解释&#xff1a; 在数学中&#xff0c;两个集合X和Y的笛卡儿积&#xff08;英语…

ThreadLocal 释放的方式有哪些

ThreadLocal基础概念&#xff1a;IT-BLOG-CN ThreadLocal是Java中用于在同一个线程中存储和隔离变量的一种机制。通常情况下&#xff0c;我们使用ThreadLocal来存储线程独有的变量&#xff0c;并在任务完成后通过remove方法清理这些变量&#xff0c;以防止内存泄漏。然而&…

使用 WebStorm 导入已有的 Vue 项目并运行的步骤与注意事项

目录 1. 引言2. WebStorm 环境准备2.1 安装 WebStorm2.2 配置 Node.js 和 npm2.3 使用 nvm 管理 Node.js 和 npm 版本2.4 npm 版本与 Vue 版本对应关系 3. 导入已有的 Vue 项目3.1 打开 Vue 项目3.2 安装项目依赖3.3 使用 nvm 控制 Node.js 和 npm 版本 4. 运行 Vue 项目4.1 启…

软件工程-图书管理系统的概要设计

软件概要设计说明书 目录 软件概要设计说明书 一、引言 1.1 编写目的 1.2 背景 1.3 定义 1.3.1特定对象 1.3.2专业术语 1.4 参考资料 二、总体设计 2.1 需求规定 2.1.1信息要求 2.1.2功能要求 2.2 运行环境 2.3 基本概要设计和处理流程 2.4 体系结构设计 2.5 模…

从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展

【科技明说 &#xff5c; 科技热点关注】 2024戴尔科技峰会在8月如期举行&#xff0c;虽然因事未能抵达现场参加&#xff0c;我只是观看了网上在线直播&#xff0c;也未能采访到DTF现场重要与会者&#xff0c;但是通过数十年对戴尔的跟踪与观察&#xff0c;我觉得2024戴尔科技…

基于Java+SpringBoot+Vue+MySQL的美容美发管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的美容美发管理系统【附源码文档】、前后…

const、inline、nullptr的使用

目录 1.const引用 1.1权限的放大 1.2权限的缩小 2.inline 3.nullptr 1.const引用 可以引用一个const对象&#xff0c;但是必须用const引用。const引用也可以引用普通对象&#xff0c;因为对象的访问权限在引用过程中可以缩小&#xff0c;但是不能放大。 不需要注意的是类…

uniapp 实现tabbar图标凸起

实现tabbar图标凸起有两种&#xff0c;第一种是自定义tabbar&#xff0c;第二种就是使用官方的tabbar跟api实现&#xff0c;自定义在体验中不如原生的tabbar&#xff0c;所以我下面展示的是使用官方的tabbar跟api实现 效果如图&#xff1a; 左边是未选中中间的凸起&#xff0c…

大模型推理--KV Cache

KV Cache是大模型推理中常用到的一个技巧&#xff0c;可以减少重复计算&#xff0c;加快推理速度。不少人只是从概念上知道它可以减少重复计算&#xff0c;详细的原理则知之甚少&#xff0c;此外为啥只有KV Cache而没有Q Cache呢&#xff0c;我们在本博客中给出详尽的解释。我想…

一些硬件知识(十八)

两个信号PIN之间串接电阻的作用&#xff1a; 1.阻抗匹配 2.吸收反射 3.防止程序异常导致两个IO都是输出的时候短路 尤其针对下图中的信号&#xff1a; 清理穿越机电机中的灰尘&#xff0c;可以用密封胶泥的办法&#xff1a; 一定要小心垫片的掉落&#xff1a; 20块左右的快充充…

游泳馆押金管理+手牌管理+刷手牌 开通方法

一、游泳馆手牌押金管理 1. 减少手牌丢失&#xff1a;收取押金可以让顾客更加谨慎地保管手牌&#xff0c;降低手牌丢失的概率。 2. 保障设施安全&#xff1a;有助于防止顾客对手牌的不当使用或故意破坏&#xff0c;保护游泳馆的设施和资源。 3. 规范顾客行为&#xff1a;促使…