8月8日上课内容 研究nginx组件rewrite

news2024/12/24 20:47:19

location 匹配uri

location 匹配的规则和优先级。(重点,面试会问,必须理解和掌握)

nginx常用的变量,这个要求掌握

rewrite:重定向功能。有需要掌握,有需要理解的。

location匹配:

正则表达式:

元字符:

. :任意单个字符,包括汉字         \.转义符才表示.

^:起始位置

$:结束位置

*:匹配前面的字符0次或者多次

+:匹配前面的字符一次或者多次。

?:匹配一次或0次

\:转义符

[0-9A-Za-z]:匹配0-9,A-Z,a-z。

[a]:只能匹配a

{n}:连续重复出现几次,不连续不算,只能连续出现

{n,m}:最少出现几次,最多几次

():分组

|:逻辑或

正则表达式:匹配的是文件内容。(命令结果也算)

URI:统一资源标识符。是一种字符串,主要用于标识抽象的或者物理资源

主要匹配:文件 图片 视频等

nginx当中:uri

www.ky30.com/images/1.jpg

location 就是用来匹配uri的:

1、精确匹配:location = / (...)

2、正则匹配:location ~ / (...)

3、一般匹配:location / (...)

匹配规则:

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

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

~$:结束位置。

~:区分大小写的匹配

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

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

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

掌握前缀、后缀匹配,精确匹配,不区分大小写匹配即可

location = / {
    [ configuration A ]
}

location / {
    [ configuration B ]
}

location /documents/ {
    [ configuration C ]
}

location ^~ /images/ {
    [ configuration D ]
}

location ~* \.(gif|jpg|jpeg)$ {
    [ configuration E ]
}

The “/” request will match configuration A, the “/index.html” request will match configuration B, the “/documents/document.html” request will match configuration C, the “/images/1.gif” request will match configuration D, and the “/documents/1.jpg” request will match configuration E.

官网的说明:

www.ky30.con/  www.ky30.com/test  www.ky30.com/document   www.ky30.com/images/

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

http://www.example.com/gallery/images/cat.png
A)Location /gallery { }      
B)Location ~* /. (png|jpg)$ { }
C)Location = /gallery/images { }    
D)Location / { }

= /gally/images/cat.png
正确答案是B

匹配的优先级:

越精确,优先级最高

= 精确匹配优先级最高

~ 正则次之

/ 通用的优先级最低

例:

 

 精确匹配

把精确匹配注释掉之后:

优先级总结:

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

完整路径 > 以什么为开头 > 不区分大小写匹配 > 标明路径 > 通用

一旦匹配到之后,不再向下匹配

生产中location匹配规则(面试题,很重要,必须掌握)

1、第一个规则:

location = / {}

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

2、第二个规则

处理静态文件请求,目录匹配
location ^~ /static/ {}(以什么为开头的格式,匹配静态页面)

3、location ~* \.(html|gif|jpg|jpeg|png|css|js|ico)$ {} 匹配图片用的

4、通用规则:

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

location /test/ {

}

rewrite:重写,重定向

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

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

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

相关文章

【RabbitMQ】golang客户端教程5——使用topic交换器

topic交换器(主题交换器) 发送到topic交换器的消息不能具有随意的routing_key——它必须是单词列表,以点分隔。这些词可以是任何东西,但通常它们指定与消息相关的某些功能。一些有效的routing_key示例:“stock.usd.ny…

角角の Qt学习笔记(一)

目录 一、解决在创建新项目时遇到的几个问题 二、信号和槽(非自定义) 三、调用 UI 中的元素(比如按钮) 一、解决在创建新项目时遇到的几个问题 在新建项目时,我选择的构建系统为CMake。然后勾选了Generate form&…

程序员月薪3w、4w难吗?该如何突破?

先说结论,如果你能成为互联网大厂的程序员,那么恭喜你,你的月薪大概率能达到3w、4w,甚至更高,此外一些非互联网大厂的程序员,比如金融、汽车制造等,月薪突破3w、4w的概率也非常高,但…

分享一个计算器

先看效果&#xff1a; 再看代码&#xff08;查看更多&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>计算器</title><style>* {box-sizing: border-box;}body…

threejs点击模型实现模型边缘高亮的选中效果--更改后提高帧率

先来个效果图 之前写的那个稍微有点问题&#xff0c;帧率只有30&#xff0c;参照官方代码修改后&#xff0c;帧率可以达到50了&#xff0c;在不全屏的状态下&#xff0c;帧率60 1.首先需要导入库 // 用于模型边缘高亮 import { EffectComposer } from "three/examples/js…

React Native 样式布局基础知识

通过此篇笔记能够学习到如下的几个知识点 在 React Native 中使用样式的一些细节了解 React Native 的 Flex 布局概念了解 React Native 的 flex 布局属性React Native 如何添加多样式属性React Native 中绝对布局和相对布局 React Native 中的 Flex 布局概念 1、主轴和交叉…

06-1_Qt 5.9 C++开发指南_对话框与多窗体设计_标准对话框

在一个完整的应用程序设计中&#xff0c;不可避免地会涉及多个窗体、对话框的设计和调用&#xff0c;如何设计和调用这些对话框和窗体是搞清楚一个庞大的应用程序设计的基础。本章将介绍对话框和多窗体设计、调用方式、数据传递等问题&#xff0c;主要包括以下几点。 Qt 提供的…

JavaWeb 速通Cookie

目录 一、关于base标签 1.引入 : 2.介绍 : 3.实例 : 4.细节 : 二、Cookie的引入 1.会话技术 : 1 什么是会话技术&#xff1f; 2 会话技术用于解决什么问题&#xff1f; 2.Cookie介绍 1 Cookie有什么用&#xff1f; 2 Cookie通讯机制 三、Cookie的基本使用 1.创建Cookie…

【数据结构】带你图文结合深入栈和队列,并具体分步实现

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;我们继续来学习初阶数据结构的内容&#xff0c;今天我们要讲的是栈与队列部分的内容&#xff0c;这篇博客先讲栈&#xff0c;队列我们放到下次再讲 好了&#xff0c;废…

看完秒懂:5G技术会给视频监控行业带来怎样的变革?

5G是第五代移动通信技术&#xff0c;能够提供更高的带宽和更快的传输速度&#xff0c;这将为视频技术的发展带来大量机会。随着5G技术的逐步普及与商用&#xff0c;人们将能够享受到更加流畅的高清视频体验&#xff0c;并且5G技术还拥有更低的延迟和更高的网络容量。这些优势不…

(树) 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 ——【Leetcode每日一题】

❓剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 难度&#xff1a;简单 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科 中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满…

分清性能测试,负载测试,压力测试这三个的区别

做测试一年多来&#xff0c;虽然平时的工作都能很好的完成&#xff0c;但最近突然发现自己在关于测试的整体知识体系上面的了解很是欠缺&#xff0c;所以&#xff0c;在工作之余也做了一些测试方面的知识的补充。不足之处&#xff0c;还请大家多多交流&#xff0c;互相学习。 …

RN 使用react-navigation写可以滚动的横向导航条(expo项目)

装包&#xff1a; yarn add react-navigation/material-top-tabs react-native-tab-view npx expo install react-native-pager-view import React from react import { View, Text, ScrollView, SafeAreaView } from react-native import { Icon } from ../../../../../compo…

ElastAlert通过飞书机器人发送报警通知

前言 公司采用ELK架构搜集业务系统的运行日志&#xff0c;以前开发人员只有在业务出现问题的时候&#xff0c;才会去kibana上进行日志搜索操作&#xff0c;每次都是被用户告知系统出问题了&#xff0c;这简直是被啪啪打脸~ 于是痛定思痛&#xff0c;决定主动出击&#xff0c;…

【刷题笔记8.8】两数之和

LeetCode&#xff08;Hot100&#xff09;&#xff1a;两个数之和 题目描述及示例&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会…

学成在线踩坑

这段时间在做学成在线的过程中&#xff0c;偷懒遇到了一个这个问题&#xff0c;这个问题是直接跑老师的程序出现的&#xff0c;配置文件方面并没有出其他情况&#xff0c;找了半天&#xff0c;没找到错误。最后因为分析可能是MediaFileServiceImpl.java这个代码出了问题&#x…

Spring高手之路12——BeanDefinitionRegistry与BeanDefinition合并解析

文章目录 1. 什么是BeanDefinitionRegistry&#xff1f;2. BeanDefinitionRegistry 的使用2.1 BeanDefinitionRegistry 简单例子2.2 有关ImportBeanDefinitionRegistrar的实现类的例子 3. BeanDefinition的合并3.1 调试验证BeanDefinition的合并3.2 BeanDefinition合并的目的 4…

怎么在JMeter中的实现关联

我们一直用的phpwind这个系统做为演示系统, 如果没有配置好的同学, 请快速配置之后接着往下看哦. phpwind发贴时由于随着登陆用户的改变, verifycode是动态变化的, 因此需要用到关联. LoadRunner的关联函数是reg_save_param, Jmeter的关联则是利用后置处理器来完成. 在需要查…

jpa Page 1 of 0 containing UNKNOWN instances错误关于like问题的解决记录

导致这个问题的原因很多&#xff0c;这里记录一下我碰到的问题和解决方法。 网上有说时 pageNo要从0开始&#xff0c;我的不是这个问题。 在使用springboot jpa时&#xff0c;发现使用 t.ip like %?5% 语句&#xff0c;如果数据库记录的ip is null时&#xff0c;将查询不到该…

【网络】应用层——HTTPS协议

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《网络》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; HTTPS协议 &#x1f349;HTTP的不安全性&#x1f349;认识HTTPS协议&#x1f353;加密解密&#x1f35…