第四章nginx组件精讲
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/p
lain; :表示如果没有在其他地方显示设置:content-type的头字段,默认响应为text/plain;纯文本格式
![]()
text/html:默认的响应类型,也就是我们说的页面
text/plain:纯文本格式,类似于 .txt文件
text/css:CSS样式表的类型, .css
text/javascript:java脚本,.js。前端文件,也可以理解是Java解析的程序文件。
小实验:
基于域名跳转:

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

###
相关文章:
第四章nginx组件精讲
nginx配件location匹配的规则和优先级(重点面试题) RUI:统一资源标识符,是一种字符串标识,用于标识抽象的或者物理资源(文件,图片,视频) nginx当中:uri ww…...
LlamaGPT -基于Llama 2的自托管类chatgpt聊天机器人
LlamaGPT一个自托管、离线、类似 ChatGPT 的聊天机器人,由 Llama 2 提供支持。100% 私密,不会有任何数据离开你的设备。 推荐:用 NSDT编辑器 快速搭建可编程3D场景 1、如何安装LlamaGPT LlamaGPT可以安装在任何x86或arm64系统上。 首先确保…...
常见的跨域解决方案
常见的跨域解决方案: 跨域问题可以分为两种情况:前端跨域和后端跨域。以下是针对这两种情况的跨域解决方案: 前端跨域解决方案: JSONP: 适用于前端向不同域名下的服务器请求数据,通过添加回调函数名称来…...
分布式websocket解决方案
1、websocket问题由来 websocket基础请自行学习,本文章是解决在分布式环境下websocket通讯问题。 在单体环境下,所有web客户端都是连接到某一个微服务上,这样消息都是到达统一服务端,并且也是由一个服务端进行响应,所以不会出现问题。 但是在分布式环境下,我们很容易发现…...
奥威BI财务数据分析方案:借BI之利,成就智能财务分析
随着智能技术的发展,各行各业都走上借助智能技术高效运作道路,财务数据分析也不例外。借助BI商业智能技术能够让财务数据分析更高效、便捷、直观立体,也更有助于发挥财务数据分析作为企业经营管理健康晴雨表的作用。随着BI财务数据分析经验的…...
Android12之com.android.media.swcodec无法生成apex问题(一百六十三)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...
Xcode build和version
参考 一个叫做Version,一个叫做Build,(version是版本号,build是打正式包每次Archive时的都增加的值)这两个值都可以在Xcode中选中target,点击“Summary”后看到。 Version在plist文件中的key是“CFBundleSh…...
前端面试:【原型链】代码世界的家族传承
嗨,亲爱的代码探险家!在JavaScript的奇妙世界里,有一个令人惊叹的概念,那就是原型链。这个概念就像是代码世界的家族传承,允许对象之间分享属性和方法,让你的代码更加高效和灵活。 1. 什么是原型链…...
2D应用开发是选择WebGL 还是选择Canvas?
推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑的3D应用场景 在介绍WebGL和Canvas的区别和联系之前,需要先了解它们各自的定义和特点。 WebGL是一种基于标准HTML5的技术,用于在Web浏览器中实时渲染3D图形。它是由Khronos Group开发的一套…...
Android Framework 常见解决方案(20)UDP广播无效问题
1 现象描述和原理解读 该问题同时存在于android App和Framework系统中。最终效果是在Android系统中直接使用UDP广播无效,有意思的是有的android系统可以,有的Android 系统不行。然而该部分代码自己在Linux上测试时是有效的,代码不变…...
VINS-Mono中的边缘化与滑窗 (4)——VINS边缘化为何是局部变量边缘化?
文章目录 0.前言1.系统构建1.1.仿真模型1.2.第一次滑窗优化1.3.第二次全局优化 2.边缘化时不同的舒尔补方式2.1.边缘化时舒尔补的意义2.2.不同的边缘化方式 3.边缘化时不同的舒尔补方式实验验证3.1.全局schur的操作方式3.2.VIO或VINS中局部边缘化的方式3.3.两种方式和全局优化方…...
真·VB.NET彻底释放Interop.Excel对象
使用 Microsoft.Office.Interop.Excel 虽然有速度慢的缺点;但是作为自带引用,兼容性最好,而且是COM对象模型也很熟悉(Excel里直接录个宏,很方便把VBA代码转成VB.NET)。所以处理几百上千条的小数据时还是很方便的。 而 Microsoft.…...
记录hutool http通过代理模式proxy访问外面的链接
效果: 代码: public class TestMain {public static void main(String[] args){HttpRequest httpRequest HttpRequest.get("https://www.youtube.com").timeout(30000);httpRequest.setProxy(new Proxy(Proxy.Type.HTTP,new InetSocketAddre…...
Selenium 自动化 | 案例实战篇
Chrome DevTools 简介 Chrome DevTools 是一组直接内置在基于 Chromium 的浏览器(如 Chrome、Opera 和 Microsoft Edge)中的工具,用于帮助开发人员调试和研究网站。 借助 Chrome DevTools,开发人员可以更深入地访问网站…...
前端技术栈es6+promise
let入门使用、 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>let 基本使用</title><script type"text/javascript">let name "hspedu教育";//老韩解读//1. conso…...
windows vscode使用opencv
1.windows vscode使用opencv 参考:https://blog.csdn.net/zhaiax672/article/details/88971248 https://zhuanlan.zhihu.com/p/402378383 https://blog.csdn.net/weixin_39488566/article/details/121297536 g -g .\hello_opencv.cpp -stdc14 -I E:\C-software\…...
json文件读取数据报错 AttributeError: ‘str‘ object has no attribute ‘items‘
trans_width_table表如下: {frozenset({2}): {3: 250, 2.5: 100, 1.5: 25, 2: 50, 1.8: 50, 2.75: 200, 5: 350, 4: 350, 2.3: 100, 4.5: 350, 3.5: 300}, frozenset({1, 3, 4, 5}): {2.5: 75, 2.75: 100, 1.5: 25, 4: 300, 3.5: 200, 4.5: 300, 3: 100, 5: 300, 2…...
1、Spring_IOC
IOC 1.概述 IOC:Inversion of Control 控制反转,可以让容器负责对象的创建以及销毁操作,对象在容器中叫 bean 2.回顾问题 问题:写了太多与业务无关的代码 耦合度非常高,写了很多和业务无关的代码不利于项目的升级迭…...
Socks5、IP代理在爬虫开发与HTTP通信中的应用
随着互联网的不断发展,代理服务器成为网络工程师和数据爬虫开发者的关键工具。本文将深入探讨Socks5代理、IP代理以及它们在网络安全、爬虫开发和HTTP通信中的重要作用。 1. 代理服务器:保障隐私与安全的中间人 代理服务器是位于客户端与目标服务器之间…...
重新认识小米
被镁光灯聚焦的企业,总是会被贴上各种标签。 8月14日,小米科技创始人雷军以“成长”为主题的年度演讲,刷遍社交网络。提到小米,你首先想到什么?手机发烧友、极致性价比,还是最年轻的500强? 这…...
告别Transformer!用PyTorch从零实现MLP-Mixer图像分类(附完整代码与调参技巧)
告别Transformer!用PyTorch从零实现MLP-Mixer图像分类(附完整代码与调参技巧) 在计算机视觉领域,Transformer架构近年来风头无两,但你是否想过——仅用多层感知机(MLP)也能构建高性能视觉模型&a…...
自学C#的第三天
今天自学了c#,并看了相关的unity课程视频,加油,争取找到一份好的实习,简历投递效果不是很成功,打算给我的qt项目重新完善一下...
浪潮服务器硬盘红灯报警?手把手教你更换RAID阵列故障盘(附同步失败解决方案)
浪潮服务器硬盘红灯报警全流程处置指南:从故障诊断到阵列重建 当浪潮服务器的硬盘指示灯突然亮起刺眼的红色,大多数运维人员的第一反应往往是心头一紧。这种视觉警报不仅意味着硬件故障,更可能预示着数据丢失的风险。不同于普通PC的硬盘故障…...
5分钟玩转OpenClaw:nanobot镜像云端体验与本地调试对比
5分钟玩转OpenClaw:nanobot镜像云端体验与本地调试对比 1. 为什么需要对比云端与本地两种体验方式 作为一个长期折腾AI工具的开发者,我最近在测试OpenClaw时遇到了一个典型困境:是直接在本地电脑安装全套环境,还是先用云端沙盒快…...
Vitis自定义IP编译报错?手把手教你修复Makefile路径问题(附完整代码)
Vitis自定义IP编译报错?手把手教你修复Makefile路径问题(附完整代码) 最近在Vitis中导入包含自定义IP的XSA文件时,不少开发者遇到了令人头疼的编译错误——"xxx.h: No such file or directory"。这个看似简单的报错背后…...
生成式AI欺诈来袭,什么样的IP数据接口才能筑起防线?
某电商平台的风控系统发出预警:一个“新用户”正在批量下单高价商品,收货地址遍布全国,支付方式各不相同。但奇怪的是,这些订单的浏览行为、停留时间、点击轨迹几乎完全一致——这不是真人,而是生成式AI模拟的虚假用户…...
告别Mac!在Windows电脑上用HBuilder X和Appuploader搞定iOS测试包(附7天免费证书申请)
在Windows平台实现iOS应用打包测试的全流程指南 对于Windows平台的开发者而言,iOS应用打包测试一直是个令人头疼的问题。传统方式需要依赖Mac电脑和复杂的Xcode工具链,不仅成本高昂,学习曲线也陡峭。但如今,借助HBuilder X和Appup…...
PostgreSQL(OpenGauss/MogDB) 大小写转换实战:批量处理表名与字段名的自动化方案
1. 为什么PostgreSQL的大小写问题让人头疼? 第一次用PostgreSQL的时候,我就被它的大小写规则坑惨了。明明在Oracle里运行好好的SQL语句,搬到PostgreSQL就报"relation does not exist"错误。后来才发现,原来PostgreSQL对…...
MXNet多语言生态:Python到Java/C++的跨平台部署
MXNet多语言生态:Python到Java/C的跨平台部署 文章详细介绍了MXNet深度学习框架的多语言支持能力,重点阐述了从Python训练环境到Java/C生产环境的完整部署流程。内容涵盖Python API的深度使用指南,包括NDArray高效张量计算、Symbolic编程的计…...
MinerU效果展示:精准识别表格数据,财务报告一键解析
MinerU效果展示:精准识别表格数据,财务报告一键解析 1. 引言:当AI遇见财务报表 想象一下,你是一名财务分析师,面前堆着几十份上市公司最新发布的PDF财报。你需要从中快速提取近三年的营收、利润、现金流等关键数据&a…...
