nginx之location匹配的规则和优先级,以及rewrite

news2024/11/24 18:53:51

主要内容:一、location匹配的规则和优先级(重点,面试会问,工作用得到)

二、nginx常用的问题(要求掌握)

三、rewrite:重定向功能(有掌握,有理解),重定向的标识位,标识位的四种类型是重点

在工作中配置nginx,主要配置location

location匹配:用正则表达式

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

nginx中uri是www.ky30.com/mages/1.jpg中的/mages/1.jpg

一、location匹配的规则和优先级(重点,面试会问,工作用得到)

location就是用来匹配uri的:1、精确匹配:location =/{......}

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

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

匹配的规则:

=:精确匹配,完全匹配,错一个字都匹配不到,必须完全一致

^~:匹配普通字符,但是是前缀匹配

~:区分大小写的匹配

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

~$:结束位置

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

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

总结:掌握 =  ^~  ~ 和 !~*

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

匹配的优先级:越精确,优先级越高

=   ~   /

精确匹配优先级最高,正则次之,通用的优先级最低

总结:优先级由高到低排序

location  =(完全匹配)   location ^~(匹配普通字符)  location  ~*(不区分大小写)   location /tast/ 标明路径的通用匹配    location  /(一般通用)  

一旦匹配到了location  不再向下匹配  location匹配的是uri

生产中的location匹配规则:

1、第一个必选规则location = /{ } 直接匹配根网站,因为通过域名访问网站首页是最多的

使用精确匹配可以加快处理速度。相当于首页,用于首页访问

2、第二个规则:location ^~/static/ { }  处理静态文件的请求,目录匹配 

3、第三个规则:location  ~*.(gif|jpg|png|css) 正则匹配,匹配图片用的

4、第四个规则:

location / {

proxy_pass   指定代理服务器,反向代理,转发动态请求,php或jsp这样的请求发到后端

}

面试会问:1、匹配的类型  精确匹配  正则匹配  一般匹配  

2、匹配的优先级 精确匹配优先级最高,正则次之,通用的优先级最低

三、rewrite

面试会问:重定向的标志位是什么,怎么写了解一下即可,在工作中基本不会写

rewrite:重写,重定向  rewrite使用nginx的全局变量或者是自己设置的变量,结合正则表达式和标识位实现url的重定向

例:

location  /  {

root  html;

index html  index htm;

default_type  text/plain;查询的结果会以文本的格式直接返回在页面上

return 200  "(lport:$remote-port)";

}

核心:x-forwarded-for:原始ip

x-Real-Ip:真实Ip

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

了解:text/html:默认的响应类型就是页面

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

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

tecxt/javascript:java的脚本,js:前端文件,也可以理解为是java解析的程序文件

rewrite的执行顺序:1、先执行server块中的rewrite

2、执行location匹配

3、如果location当中还有rewrite,继续执行,不停的rewrite就会陷入死循环,只能10次,然后报错,报错状态码为500

rewrite的语法:rewrite  <regex>  <replacement>  [flag]

解释:rewrite:开始重定向     regex:正则匹配的规则  replacement:跳转后的内容,要重定向的url       flag:标志位

flag标志位有四种类型:

1、permanent:永久重定向,返回码为301

例:rewrite  /test/ (.*)/ky30/$1  permanent;

只要访问test.index就会跳转到ky30.index

.*是什么,$1就是什么

 永久重定向,客户端和服务器要经过两次请求,两次响应

2、redirect:临时重定向,显示的返回码为302

例:rewrite  /test/ (.*) /ky30/$1  redirect;

总结:永久重定向的返回码为301,永久性的变更url,搜索引擎会转移他的权重以及排名到新的url

临时重定向的返回码为302,用于短期变更(用于网站维护,或升级更新)搜索引擎不会转移权重和排名到新的url    

核心:返回码

返回码304表示获取的是本地的缓存

3、break:①是重定向,但是不会改变uri,而且只会请求一次

②立即停止匹配,跳出当前匹配,即刻终止

 

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

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

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

相关文章

DNS:使用 bind9 配置主从权威DNS服务器

写在前面 分享一些 使用 bind9 配置主从权威名称服务器的笔记理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&#xff0c;永不停息。所有其它的路都是不完整的&#xff0c;是人的逃避方式…

设计模式行为型——策略模式

在现实生活中常常遇到达成某种目的&#xff0c;有多种实现策略可供选择的情况。例如&#xff0c;出行上班可以乘坐公交车、乘坐地铁、骑自行车或自己开私家车等&#xff0c;填饱肚子可以吃火锅、吃烤肉、吃烤串、吃东北家常菜等方法。 在软件开发中也常常遇到类似的情况&#x…

人物启示-张一鸣与陆奇

在科技行业中&#xff0c;张一鸣与陆奇可谓是两位颇具影响力的人物。张一鸣和陆奇分别是字节跳动&#xff08;TikTok 的母公司&#xff09;的创始人和百度前总裁。张一鸣作为字节跳动的创始人&#xff0c;成功打造了今日头条、抖音等知名产品&#xff0c;而陆奇则曾任微软副总裁…

计算机组成与设计01:计算机的抽象与技术

目录 1 概述 1.1 计算机体系结构体中的8个伟大思想 1.2 计算机层次结构 1.2.1 概述 1.2.2 指令集体系结构 1.3 实例&#xff1a;从程序到电子信号 1.3.1 从高级语言到汇编语言 1.3.2 从汇编语言到机器语言 1.3.3 生成可执行文件并执行 1.3.4 计算机基本执行结构 1.3…

【vue3】基础知识点-computed和watch

学习vue3&#xff0c;都会从基础知识点学起。了解setup函数&#xff0c;ref&#xff0c;recative&#xff0c;watch、computed、pinia等如何使用 今天说vue3组合式api&#xff0c;computed和watch 在vue3中&#xff0c;computed和watch仍然是非常有用的特性&#xff0c;帮助处…

【C语言】实现linux下基于C语言的一个简单的UDP客/服端通信

一、实例代码 对于基础好的朋友可以直接拿代码看 客户端代码&#xff1a; #include <stdio.h> #include <sys/socket.h>//socket() #include <netinet/in.h>//struct sockaddr_in #include <string.h>//memset() #include <arpa/inet.h>//ine…

数字化转型中的抉择:定制化软件还是引入PDM系统?

企业在数字化转型过程中可以考虑是使用定制化软件、基于成熟模块改造&#xff0c;或引入PDM&#xff08;产品数据管理&#xff09;系统&#xff0c;这时需要仔细权衡各种因素&#xff0c;以确保选择最适合其需求的路径。这些选择各自有其优势和适用场景&#xff0c;下面将分别对…

Linux项目部署

目录 一JAVAWeb环境的部署【安装JDK&#xff0c;MySQL数据库&#xff0c;Tomcat】 二.手工部署SpringBoot项目&#xff08;写的最好的&#xff09; 1.在IDEA中开发SpringBoot项目并打成jar包--点击右侧的Maven执行package命令 2.将jar包上传到Linux服务器 3.执行以下命令&a…

探究Spring事务:了解失效场景及应对策略

在现代软件开发中&#xff0c;数据的一致性和完整性是至关重要的。为了保证这些特性&#xff0c;Spring框架提供了强大的事务管理机制&#xff0c;让开发者能够更加自信地处理数据库操作。然而&#xff0c;事务并非银弹&#xff0c;存在一些失效的情景&#xff0c;本文将带您深…

C++ Visual Studio工程目录相对路径设置

文章目录 相对路径相对路径是相对vs工程的哪个目录而言书写格式 参考 相对路径 要设对相对路径&#xff0c;需要搞清楚下面两个问题&#xff1a; 相对路径是相对vs工程的哪个目录而言相对路径的书写格式 相对路径是相对vs工程的哪个目录而言 注意&#xff1a; 并非以解决方案…

LeetCode150道面试经典题-买卖股票的最佳时机(简单)

1、题目 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的…

麻了!包含中科院TOP,共16本期刊被标记为“On Hold”状态!

近日&#xff0c;小编从科睿唯安旗下的“Master Journal List”官网查到&#xff0c;除了知名老牌期刊Chemosphere竟然被标记为“On Hold”状态&#xff0c;目前共有7本SCI期刊&#xff0c;1本SSCI期刊&#xff0c;8本ESCI期刊被标记为“On Hold”&#xff0c;究竟是怎么回事呢…

一篇Android 真实面经(干货满满)

如梦朦胧 从年初开始就一直有换工作的躁动&#xff0c;因某些原因而拖到了现在,然后投了某度的Android岗位,本以为像我这种非211、985没工作经验的渣渣只能被直接pass,结果却意外的收到了电话,真是受宠若惊.经过电面,技术三面,然后就是等通知到最后拿到了OFFER,如梦一般,真是挺…

python小程序代码50 到100行,python小程序代码100行

这篇文章主要介绍了python小程序代码50 到100行&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 目录 1.生成漂亮的樱花树2.绝美的静态樱花树3.魔法少女小圆动漫形象4.利用pyth…

【注册表】windows系统注册表常用修改方案

文章目录 ◆ 修改IE浏览器打印页面参数设置◆气泡屏幕保护◆彩带屏幕保护程序◆过滤IP(适用于WIN2000)◆禁止显示IE的地址栏◆禁止更改&#xff29;&#xff25;默认的检查(winnt适用)◆允许DHCP(winnt适用)◆局域网自动断开的时间(winnt适用)◆禁止使用“重置WEB设置”◆禁止更…

SHGetFileInfo函数获取48x48图标并在ListControl平铺视图中显示

VS2010工程下载链接&#xff1a;https://pan.baidu.com/s/1ACXQSpoNdFVFLdvWntT7mA?pwdwfy5 C语言写法&#xff1a; #define COBJMACROS #include <stdio.h> #include <Windows.h> #include <CommCtrl.h> #include <commoncontrols.h>HICON load_ic…

Cocos基本介绍

一、下载Dashboard Cocos Creator 3.8 手册 - 安装和启动 二、编辑器结构 1.资源管理器&#xff1a;显示了项目资源文件夹(assets)中的所有资源 2.场景编译器&#xff1a;用于展示和编辑场景中可是内容的工作区域 3.层级管理器&#xff1a;用树状列表的形式展示场景中的所有…

Linux文件读取

#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h>int main(int argc, char * * argv){printf("输入了参数个数&#xff1a;%d \n",argc);if (argc !3 ){printf("参数不…

系统架构设计专业技能 · 软件工程(一)【系统架构设计师】

系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA&#xff08;一&#xff09;【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估&#xff08;二&#xff09;【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…

python接口自动化之正则用例参数化

前言 ​ 我们在做接口自动化的时候&#xff0c;处理接口依赖的相关数据时&#xff0c;通常会使用正则表达式来进行提取相关的数据。 ​ 正则表达式&#xff0c;又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(Regular Expression&#xff0c;在代码中常简写…