第四章nginx组件精讲

news2024/9/24 17:21:18

nginx配件location匹配的规则和优先级(重点面试题)

RUI:统一资源标识符,是一种字符串标识,用于标识抽象的或者物理资源(文件,图片,视频)

nginx当中:uri

www.ky30.com/images/1.jpg ——images/1.jpg (是uri)

location 就是用来匹配uri的:

1,精确匹配:location = / {...}

2,正则匹配:location ~ / {...}

3,一般匹配:location / {....}

匹配的规则:

= :精确匹配,完全匹配,错一个字都匹配不到,必须完全一致。
^~:匹配普通字符,前缀匹配
~$:结束位置

~:区分大小写的匹配

~*:不区分大小写的匹配

!~:区分大小写的匹配,取的逻辑非,取反

!~*:不区分大小写,取反

location匹配原则:越精确,越匹配(优先级越高)

= > ~ > /

精确匹配优先级最高,正则第二,通用最后

优先级:

location = > location ^~ > location~* > location /test/ > location /

location = 最高优先级

location ^~/images/ 正则,以什么为开头

location ~*\ .(jpg|png)$ 不区分大小写,匹配以 .jpg或者.png结尾的uri优先

location /test/ 通用完整路径

location / 通用匹配

一旦匹配到了之后,不在向下匹配。优先级根据精准度,location匹配的是uri

生产中location匹配规则:

1,第一个必选按规则:

location = / {}

直接匹配根网站。通过域名访问网站首页是最多的。使用精确匹配,可以加快处理速度。首页。

2,第二个规则:

locaation ^~ /static/ {}

处理静态文件的请求,目录匹配。

3,location ~*.(gif|jpg|png|css),图片匹配用

4,通用规则:

location / {

proxy_pass 指定代理,反向代理,转发动态请求。 .php.jsp的请求,发到后端。

}

rewrite:重写,重定向

rewrite 使用nginx的群居变量或者是自己设置的变量,结合正则表达式和标志位实现url的重定向

rewrite执行顺序:

1,执行server块当中的rewrite

2,执行location匹配

3,如果location当中还有rewrite,继续执行

如果不停的rewrite,会进入死循环,10次之后报错,报错状态码:500

rewrite的语法

rewrite <regex><replacement>[flag]

rewrite:开始重定向

regex:正则匹配的规则

replacement:表示跳转之后的内容,你要重订向的url

flag:标志位

permanent:永久重定向

redirect:临时重定向,显示返回码302

总结:

永久重定向:301,永久性的变更url,搜索引擎会转移他的权重以及排名到新的url
临时重定向:302,用于短期变更(网站维护,或者升级更新。)搜索引擎是不会转移权重和排名到新的url

304:都是缓存,获取本地缓存

break:是重定向,但是他不会改变url,而且只会请求1次。跳出当前的匹配,即可终止。

last:本条的规则匹配完成后,继续向下匹配,只要有last',就继续匹配。匹配的时候需要注意,防止死循环

rewrite or internal redirection cycle while processing #写成死循环,一直在匹配location,10次,返回码500。

                                                                                                                                  nginx的内置变量: 

default_type text/plain; :表示如果没有在其他地方显示设置:content-type的头字段,默认响应为text/plain;纯文本格式

 

text/html:默认的响应类型,也就是我们说的页面

text/plain:纯文本格式,类似于 .txt文件

text/css:CSS样式表的类型, .css

text/javascript:java脚本,.js。前端文件,也可以理解是Java解析的程序文件。

小实验:

基于域名跳转:

基于ip地址跳转:(页面维护或者升级)

###

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

可变形卷积(DCN)——论文及代码详解

文章目录 论文详解Deformable ConvolutionDeformable RoI PoolingDeformable ConvNetsUnderstanding Deformable ConvNets 代码详解 论文&#xff1a;《Deformable Convolutional Networks》 论文详解 Deformable Convolution 普通卷积的数学表达 普通的二维卷积包括两个步骤:…

mysql 数据备份和恢复

操作系统&#xff1a;22.04.1-Ubuntu mysql 版本&#xff1a;8.033 binlog 介绍 binlog 是mysql 二进制日志 binary log的简称&#xff0c;可以简单理解为数据的修改记录。 需要开启binlog,才会产生文件&#xff0c;mysql 8.0 默认开启,开启后可以在 /var/lib/mysql &#xff…

世界上最著名的密码学夫妻的历史

Alice和Bob是密码学领域里最著名的虚拟夫妻&#xff0c;自1978年“诞生”以来&#xff0c;到走进二十一世纪的移动互联网时代&#xff0c;作为虚构的故事主角&#xff0c;Alice和Bob不仅在计算机理论、逻辑学、量子计算等与密码学相关的领域中得到应用&#xff0c;他们的名字也…

ESP-C3入门21. I2C接口点亮1306驱动的OLED屏

ESP-C3入门21. 点亮1306驱动的OLED屏 一、Espressif/ssd1306 驱动简介1. 驱动介绍2. OLED充电泵概念 二、I2C 通讯步骤1. 初始化 I2C 总线 (i2c_master_init()函数)&#xff1a;2. 创建 I2C 命令句柄 (i2c_cmd_handle_t cmd i2c_cmd_link_create())&#xff1a;3. 发送启动信号…

异步更新队列 - Vue2 响应式

前言 这篇文章分析了 Vue 更新过程中使用的异步更新队列的相关代码。通过对异步更新队列的研究和学习&#xff0c;加深对 Vue 更新机制的理解 什么是异步更新队列 先看看下面的例子&#xff1a; <div id"app"><div id"div" v-if"isShow&…

有哪些好用的设计图工具?

设计图纸制作软件是高级学习数字设计的最佳选择&#xff0c;无论你是想通过设计图纸制作软件创建一个明亮的设计&#xff0c;还是与其他设计师分享和交流。本文将介绍十个易于使用的设计图纸制作软件&#xff0c;其中大多数是初学者和高级艺术家&#xff0c;具有完整的绘图、照…

科研论文配图绘制指南——基于Python—第一章

目录 第一章1.1科研论文配图的绘制基础1.2科研论文配图的配色基础1.2.1 色轮配色原理1.2.3 颜色主题1.2.4 配色工具 总结 第一章 1.1科研论文配图的绘制基础 科研配图包括线性图、灰度图、照片彩图和综合配图四种类型&#xff0c;最经常使用为线型图。 建议使用EPS、PDF等矢量…

C语言:每日一练(选择+编程)

目录 选择题&#xff1a; 题一&#xff1a; 题二&#xff1a; 题三&#xff1a; 题四&#xff1a; 题五&#xff1a; 编程题&#xff1a; 题一&#xff1a;打印1到最大的n位数 示例1 思路一&#xff1a; 题二&#xff1a;计算日期到天数转换 示例1 思路一&#xf…

SwiftUI 动画进阶:实现行星绕圆周轨道运动

0. 概览 SwiftUI 动画对于优秀 App 可以说是布帛菽粟。利用美妙的动画我们不仅可以活跃界面元素,更可以单独打造出一整套生动有机的世界,激活无限可能。 如上图所示,我们用动画粗略实现了一个小太阳系:8大行星围绕太阳旋转,而卫星们围绕各个行星旋转。 在本篇博文中,您将…

华为网络篇 RIP路由标记-31

难度2复杂度2 目录 一、实验原理 二、实验拓扑 三、实验步骤 四、实验过程 总结 一、实验原理 路由标记tag是用于进行路由过滤的&#xff0c;它给相关的路由打标记&#xff0c;然后应用于路由策略中&#xff0c;路由器会根据策略进行路由过滤。比如&#xff0c;给静态路由…

题目:售货员的难题(状压dp)

售货员的难题 题目描述输入输出格式输入格式&#xff1a;输出格式&#xff1a; 输入输出样例输入样例#1&#xff1a;输出样例#1&#xff1a; 思路AC代码&#xff1a; 题目描述 某乡有n个村庄( 1 < n < 16 )&#xff0c;有一个售货员&#xff0c;他要到各个村庄去售货&am…

Smartbi 李代:人尽其才、数尽其用,Smartbi Eagle智慧数据运营平台全新亮相

数据是企业数字化转型的基石&#xff0c;也是赢得未来的核心资产和竞争力。数字化转型的关键&#xff0c;是在全公司建立一种数据驱动的组织和机制&#xff0c;营造数据文化的氛围&#xff0c;让更多的用户、在更多的场景中&#xff0c;有意愿、有能力使用数据&#xff0c;从而…

【C++】面向对象编程引入 ③ ( 面向过程编程的结构化程序设计方法 | 结构化程序设计方法概念 / 特点 / 优缺点 | 面向对象编程引入 )

文章目录 一、面向过程编程的结构化程序设计方法1、结构化程序设计方法概念2、结构化程序设计方法特点3、结构化程序设计方法优缺点 二、面向对象编程引入 一、面向过程编程的结构化程序设计方法 如果使用 面向过程语言 ( 如 : C 语言 ) , 开发 大型 项目 , 一般使用 结构化程序…

Apache SeaTunnel社区迎来新Committer!

采访&编辑 | Debra Chen 个人简介 姓名&#xff1a;马骋原公司&#xff1a;恒生电子 GitHub ID&#xff1a;rewerma个人擅长研究领域&#xff1a;java中间件、微服务、大数据等 您为社区提交了什么贡献&#xff1f;具体方案可以描述一下吗&#xff1f; 为SeatTunnel提交…

案例21 基于Spring Boot+Redis实现图书信息按书号存储案例

1. 案例需求 基于Spring BootRedis实现图书信息按书号存储和取出功能&#xff0c;数据存储至Redis。 2. 创建Spring Boot项目 创建Spring Boot项目&#xff0c;项目名称为springboot-redis02。 3. 选择依赖 ​ pom.xml文件内容如下所示&#xff1a; <?xml version&quo…

入门Web自动化测试之元素定位的配置管理

之前我们讲过Selenium使用教程&#xff0c;这一篇我们来学习元素定位的配置管理。 目的 Web自动化测试作为软件自动化测试领域中绕不过去的一个“香饽饽”&#xff0c;通常都会作为广大测试从业者的首选学习对象&#xff0c;相较于C/S架构的自动化来说&#xff0c;B/S有着其无…

AI巨浪下,数据技术如何驱动智能未来?

引言 数据技术是大数据时代的核心驱动力&#xff0c;也是推动各行各业数字化转型和智能化升级的关键因素。随着云计算、人工智能、区块链等新兴技术的不断发展和融合&#xff0c;数据技术也呈现出多模态、混合处理、自动化管理等新的趋势和特点。 8 月 19 日&#xff08;周六&…

UniApp 制作高德地图插件

1、下载Uni插件项目 在Uni官网下载Uni插件项目&#xff0c;并参考官网插件项目创建插件项目. 开发者须知 | uni小程序SDK 如果下载下来项目运行不了可以参考下面链接进行处理 UniApp原生插件制作_wangdaoyin2010的博客-CSDN博客 2、引入高德SDK 2.1 在高德官网下载对应SD…

e6zzseo:跨境独立站还能做起来吗?

跨境独立站指的是在其他国家或地区创建和运营自己的电子商务网站。虽然跨境独立站在理论上是可行的&#xff0c;但成功实施和运营它可能面临一些挑战。以下是e6zzseo分析的一些考虑因素和建议&#xff0c;以帮助你更好地评估是否可以成功运营跨境独立站&#xff1a; 做跨境独立…