当前位置: 首页 > news >正文

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将停止搜索,并应用该块中的配置来处理请求。

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

相关文章:

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个重复字符的最长子串

题目&#xff1a; 题解&#xff1a; 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必读资讯

国家网信办发布《人工智能生成合成内容标识办法&#xff08;征求意见稿&#xff09;》 - 要求所有的AI生成内容都要打标&#xff0c;包括文字、图像、视频、音频… - 文本内容要插入标识符提醒&#xff0c;音频内容要在里面插入提示音 - 对创作者不太友好&#xff0c;对平台…...

量化交易需要注意的关于股票交易挂单排队规则的问题

炒股自动化&#xff1a;申请官方API接口&#xff0c;散户也可以 python炒股自动化&#xff08;0&#xff09;&#xff0c;申请券商API接口 python炒股自动化&#xff08;1&#xff09;&#xff0c;量化交易接口区别 Python炒股自动化&#xff08;2&#xff09;&#xff1a;获取…...

应急响应实战---是谁修改了我的密码?

前言&#xff1a;此次应急响应为真实案例&#xff0c;客户反馈无法通过密码登录服务器&#xff0c;疑似服务器被入侵 0x01 如何找回密码&#xff1f; 客户服务器为windows server2019&#xff0c;运维平台为PVE平台&#xff1b;实际上无论是windows系统或者是linux系统&#…...

知识的通用性

概述 很久没有写文章了&#xff0c;因为集团公司当前在大刀阔斧的改革&#xff0c;人员精简&#xff0c;很多事情都合并到同一个人身上&#xff0c;同时将内部的沟通软件平台又做一次大的切换&#xff0c;很多资料都需要重新的整理。 所以&#xff0c;抱歉&#xff0c;很多内…...

36岁,大厂女程序员,中年失业后,我开始接受自己的平凡,并深耕自己

作为80后秦岭大山里面的穷苦农民工家的孩子&#xff0c;从小因为讨厌做家务&#xff0c;做农活&#xff0c;而且家里孩子众多&#xff0c;物质匮乏&#xff0c;从小就特别渴望走出大山。 上学的时候&#xff0c;通过刻苦努力&#xff0c;成绩也还算可以&#xff0c;经常受到老师…...

shader 案例学习笔记之mix函数

mix函数&#xff1a; 在两个值之间进行插值&#xff1b; 使用&#xff1a; #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 日&#xff0c;OpenAI 推出全新模型 o1&#xff0c;它是该公司计划推出的一系列“推理”模型中的首个&#xff0c;也就是此前业内传闻许久的“Strawberry&#xff08;草莓&#xff09;”项目。 据悉&#xff0c;o1 模型在众多任务中能够比人类更…...

心觉:以终为始,帮你精准实现目标

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

【Kubernetes】linux centos安装部署Kubernetes集群

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

canlog-vci can记录仪,速采仪如何用VBDSP进行解析曲线

如下图所示&#xff0c;VBDSP支持绘制解析曲线 添加解析曲线步骤 &#xff08;1&#xff09;在线播放DBC解析曲线 ① 添加要解析的规则&#xff0c;自定义规则/DBC解析规则、J1939协议、CANopen协议&#xff1b; ② 选中设备&#xff0c;点击“分析”栏中的“曲线”&#xff0…...

JCO|病理AI是精准医疗的未来吗?|个人观点·24-09-13

小罗碎碎念 今日顶刊&#xff1a;JCO 这篇文章于24-09-11发表于J Clin Oncol&#xff0c;目前IF42.1&#xff0c;但是注意&#xff0c;这篇文章是一篇观点类文章&#xff0c;而不是我们常规意义上的那种科研型文章。 我在原作者的基础上补充了很多精美插图&#xff0c;并且根据…...

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&#xff08;简称 MP&#xff09;是一个 MyBatis的增强工具&…...

Leetcode 109.有序链表转换二叉搜索树(Medium)

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

[数据集][目标检测]河道垃圾检测数据集VOC+YOLO格式2274张8类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2274 标注数量(xml文件个数)&#xff1a;2274 标注数量(txt文件个数)&#xff1a;2274 标注…...

python vtk 绘制圆柱体和包围盒

基本的代码如下&#xff0c; 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…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...