Nginx解析:入门笔记
🌈 个人主页:danci_
🔥 系列专栏:《设计模式》《MYSQL》
💪🏻 制定明确可量化的目标,坚持默默的做事。
✨欢迎加入探索nginx之旅✨
👋 大家好!文本学习和探索Nginx配置。✨欢迎踏入Nginx的奇妙世界!作为高性能Web服务器与反向代理的佼佼者,Nginx以它的轻量级、高并发处理能力,在全球范围内赢得了无数开发者的青睐。💡今天,就让我们一同揭开Nginx的神秘面纱,探索它如何为网站加速,赋能云端。
一、基本语法
location
指令的基本语法如下:
location [=|~|~*|^~] uri { ... }
[=|~|~*|^~]
:这部分是可选的修饰符,用于指定匹配的类型。=
:表示精确匹配。如果请求的URI与location
后指定的字符串完全相等,则匹配成功。~
:表示区分大小写的正则匹配。~*
:表示不区分大小写的正则匹配。^~
:表示URI以某个常规字符串开头,如果匹配成功,则不再进行正则表达式匹配。
uri
:待匹配的请求字符串,可以是不包含正则表达式的标准URI,也可以是包含正则表达式的正则URI。
二、常见配置及作用
- 精确匹配(
=
)- 作用:当请求的URI与
location
后指定的字符串完全相等时,直接应用该location
块中的配置。 - 示例:
location = / { ... }
表示只有当请求的URI恰好为/
时,才会应用该配置。
- 作用:当请求的URI与
- 正则匹配(
~
和~*
)- 作用:通过正则表达式来匹配请求的URI,
~
区分大小写,~*
不区分大小写。 - 示例:
location ~ \.(gif|jpg|png)$ { ... }
表示匹配所有以.gif
、.jpg
或.png
结尾的请求,并执行相应配置。
- 作用:通过正则表达式来匹配请求的URI,
- 前缀匹配(无修饰符和
^~
)- 无修饰符:表示请求的URI以指定的字符串开头。Nginx会首先检查所有无修饰符的
location
块,并记录最长的匹配结果,然后才会进行正则匹配。 ^~
:与无修饰符类似,也是前缀匹配,但如果匹配成功,则不再进行正则表达式的匹配。- 示例:
location ^~ /images/ { ... }
表示匹配所有以/images/
开头的请求,并且一旦匹配成功,将不再检查后续的正则表达式匹配。
- 无修饰符:表示请求的URI以指定的字符串开头。Nginx会首先检查所有无修饰符的
- 根匹配(
/
)- 作用:作为默认匹配,当没有任何其他
location
块匹配成功时,Nginx会使用根匹配(即/
)来处理请求。 - 示例:
location / { ... }
表示匹配所有未被其他location
块匹配的请求。
- 作用:作为默认匹配,当没有任何其他
三、其他相关配置
在location
块中,还可以配置各种指令来控制请求的处理方式,如:
root
:设置请求的根目录,Nginx将在这个目录下查找请求的资源。alias
:设置请求的别名目录,与root
不同,alias
会将请求的URI替换为指定的路径。index
:指定默认索引文件的名称,当请求的是一个目录时,Nginx会尝试返回该目录下的索引文件。proxy_pass
:将请求代理到后端服务器。rewrite
:重写请求的URI。try_files
:尝试不同的文件或路径,直到找到一个存在的文件或目录。
四、匹配优先级
Nginx在处理请求时,会按照以下顺序匹配location
块:
- 精确匹配(
=
)。 - 前缀匹配(
^~
),如果匹配成功,则不再进行正则匹配。 - 正则匹配(
~
和~*
),按配置文件中出现的顺序进行匹配。 - 前缀匹配(无修饰符),记录最长的匹配结果。
- 根匹配(
/
)。
当找到匹配的location
块后,Nginx将停止搜索,并应用该块中的配置来处理请求。
好了,今天分享到这里。希望你喜欢这次的探索之旅!不要忘记 "点赞" 和 "关注" 哦,我们下次见!🎈
相关文章:

Nginx解析:入门笔记
🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL》 💪🏻 制定明确可量化的目标,坚持默默的做事。 ✨欢迎加入探索nginx之旅✨ 👋 大家好!文本学习和探索Nginx配置。…...

在 Mac 上安装双系统会影响性能吗,安装双系统会清除数据吗?
在 Mac 系统安装并使用双系统已经成为了许多用户办公的选择之一,双系统可以让用户在 Mac 上同时运行 Windows 或其他操作系统。然而,许多用户担心这样做会对 Mac 的性能产生影响。 接下来将给大家介绍 Mac 装双系统会影响性能吗,Mac装双系统…...

vue3提交按钮限制重复点击
下载lodash npm install lodash 引入并使用 <template><div click"submit()">提交</div> </template><script setup>import { debounce } from lodash;const submit debounce(() > {//业务代码},2000,{leading: true,trailing:…...

Java | Leetcode Java题解之第395题至少有K个重复字符的最长子串
题目: 题解: class Solution {public int longestSubstring(String s, int k) {int ret 0;int n s.length();for (int t 1; t < 26; t) {int l 0, r 0;int[] cnt new int[26];int tot 0;int less 0;while (r < n) {cnt[s.charAt(r) - a];…...

20240915 每日AI必读资讯
国家网信办发布《人工智能生成合成内容标识办法(征求意见稿)》 - 要求所有的AI生成内容都要打标,包括文字、图像、视频、音频… - 文本内容要插入标识符提醒,音频内容要在里面插入提示音 - 对创作者不太友好,对平台…...
量化交易需要注意的关于股票交易挂单排队规则的问题
炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…...

应急响应实战---是谁修改了我的密码?
前言:此次应急响应为真实案例,客户反馈无法通过密码登录服务器,疑似服务器被入侵 0x01 如何找回密码? 客户服务器为windows server2019,运维平台为PVE平台;实际上无论是windows系统或者是linux系统&#…...
知识的通用性
概述 很久没有写文章了,因为集团公司当前在大刀阔斧的改革,人员精简,很多事情都合并到同一个人身上,同时将内部的沟通软件平台又做一次大的切换,很多资料都需要重新的整理。 所以,抱歉,很多内…...

36岁,大厂女程序员,中年失业后,我开始接受自己的平凡,并深耕自己
作为80后秦岭大山里面的穷苦农民工家的孩子,从小因为讨厌做家务,做农活,而且家里孩子众多,物质匮乏,从小就特别渴望走出大山。 上学的时候,通过刻苦努力,成绩也还算可以,经常受到老师…...

shader 案例学习笔记之mix函数
mix函数: 在两个值之间进行插值; 使用: #ifdef GL_ES precision mediump float; #endifuniform vec2 u_resolution; uniform float u_time;vec3 colorA vec3(0.149,0.141,0.912); vec3 colorB vec3(1.0,0.83,0.224);void main(){vec2 st…...

OpenAI草莓正式发布,命名o1
一、相关介绍 当地时间 9 月 12 日,OpenAI 推出全新模型 o1,它是该公司计划推出的一系列“推理”模型中的首个,也就是此前业内传闻许久的“Strawberry(草莓)”项目。 据悉,o1 模型在众多任务中能够比人类更…...

心觉:以终为始,帮你精准实现目标
Hi,我是心觉,与你一起玩转潜意识、脑波音乐和吸引力法则,轻松掌控自己的人生! 挑战每日一省写作169/1000天 假设你的目标是 一年内赚到150万。我们可以通过“以终为始”和“以始为终”的结合来帮助你实现这个目标 以下是完整的…...

【Kubernetes】linux centos安装部署Kubernetes集群
【Kubernetes】centos安装Kubernetes集群 1、环境准备 系统centos7 配置yum源参考文章 Centos系统换yum源 yum -y update 步骤1-3是所有主机都要配置,主机名和hosts配置完后可以使用工具命令同步 1.1 主机 一主二从 主机名ipk8smaster192.168.59.148k8snode11…...

canlog-vci can记录仪,速采仪如何用VBDSP进行解析曲线
如下图所示,VBDSP支持绘制解析曲线 添加解析曲线步骤 (1)在线播放DBC解析曲线 ① 添加要解析的规则,自定义规则/DBC解析规则、J1939协议、CANopen协议; ② 选中设备,点击“分析”栏中的“曲线”࿰…...

JCO|病理AI是精准医疗的未来吗?|个人观点·24-09-13
小罗碎碎念 今日顶刊:JCO 这篇文章于24-09-11发表于J Clin Oncol,目前IF42.1,但是注意,这篇文章是一篇观点类文章,而不是我们常规意义上的那种科研型文章。 我在原作者的基础上补充了很多精美插图,并且根据…...

idea一键自动化部署项目
文章目录 前言一、 IDEA插件安装1. 首先下载 Alibaba Cloud Toolkit 插件2. 插件下载完成后重启IDEA 二、SpringBoot项目准备1. pom.xml 文件2. controller3. 启动类 三、SpringBoot项目jar包部署1. Alibaba Cloud Toolkit 插件服务器配置2. 主机 IP、用户名、密码 点击测试链接…...
Mybatis-plus复习篇
文章目录 1.MyBatis-plus基础1.1.mybatis-plus简介1.2.基本使用1.3.注解映射主键生成策略 1.4.命名转换问题1.5.关闭命名转换功能 2.BaseMapper核心接口 1.MyBatis-plus基础 1.1.mybatis-plus简介 MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具&…...

Leetcode 109.有序链表转换二叉搜索树(Medium)
给定一个单链表的头节点 head ,其中的元素 按升序排序 ,将其转换为 平衡 二叉搜索树。 示例 1: 输入: head [-10,-3,0,5,9] 输出: [0,-3,9,-10,null,5] 解释: 一个可能的答案是[0,-3,9,-10,null,5],它表示所示的高度…...

[数据集][目标检测]河道垃圾检测数据集VOC+YOLO格式2274张8类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2274 标注数量(xml文件个数):2274 标注数量(txt文件个数):2274 标注…...

python vtk 绘制圆柱体和包围盒
基本的代码如下, import vtkcylinder vtk.vtkCylinderSource() cylinder.SetRadius(3.0) cylinder.SetHeight(10.0) cylinder.SetResolution(50)boundsFilter vtk.vtkOutlineFilter() boundsFilter.SetInputConnection(cylinder.GetOutputPort())mapper vtk.vtk…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...