Nginx 请求的 匹配规则 与 转发规则
博文目录
文章目录
- URL 与 URI
- 匹配规则
- 案例说明
- 转发规则
- 响应静态资源
- 案例说明
- 转发动态代理
- 案例说明
- 案例说明
URL 与 URI
通常, 一个 URL 由以下部分组成
scheme://host:port/path?query#fragment
- scheme: 协议, 如 http, https, ftp 等
- host; 主机名或 IP 地址
- post: 端口, 80 可省略
path
:要访问的资源, 从 port 后面的 / 开始, 到 query 前面的 ? 结束, 如 /demo/user/list
- query: 可选, 查询字符串, 用于向服务器传递参数, 参数之间用 & 符号分隔
- fragment: 可选, 标识文档中的特定位置, 常用于锚点链接
URI 就是 除去 scheme, host, post 剩余的部分, 以 /
开头, 如 /demo/user/list?name=王#test
匹配规则
- Nginx Location
- Beginner’s Guide
- How nginx processes a request
location [ = | ~ | ~* | ^~ ] uri { ... }
Location 常用配置有两种, 一种叫做 前缀配置
, 一种叫做 正则配置
- 前缀配置:
location /
,location = /
,location ^~ /
,location /test
,location = /pvw
,location ^~ /demo/user/list
- 正则配置:
location ~ \.(gif|jpg|jpeg)$
,location ~* \.(gif|jpg|jpeg)$
还有一种以 @
开头的被称为 Named Location, 这种不能用于常规请求处理, 而是用于请求重定向
Nginx 会将 URL 做如下规范化处理, 然后再根据 Location 配置, 开始尝试匹配
- 解码以
%XX
形式编码的文本 - 解析
.
和..
相对路径组件 - 将相邻的多个
/
压缩为单个斜杠
Nginx 用请求的 URI 部分与 location 做匹配与响应或转发, 如果 URI 不存在(如: 请求 URL 为 http://host:port), 则认为 URI 为 /
- 先找前缀配置, 判断 URI 是否以配置的前缀开头, 是的话就匹配到了, 如果匹配到多个前缀配置, 则取前缀最长的这个作为保底配置
- 若匹配到的最长前缀配置是以
^~
开头的, 则匹配搜索将终止 - 此外, 以
=
开头的是精确匹配, 只匹配 URI 和 location 前缀完全相同的情况, 若匹到了精确匹配, 则匹配搜索将终止
- 若匹配到的最长前缀配置是以
- 再找正则配置, 按配置文件从上到下的顺序逐一匹配, 在首次匹配到后终止匹配搜索, 如果没有匹配到, 则使用先前找到的前缀配置
- 以
~
开头, 表示区分大小写 - 以
~*
开头, 表示不区分大小写
- 以
- 如果前缀配置也没有匹配的, 则匹配失败, 返回 404
案例说明
location = / {[ configuration A ]
}
location / {[ configuration B ]
}
location /documents/ {[ configuration C ]
}
location ^~ /images/ {[ configuration D ]
}
location ~* \.(gif|jpg|jpeg)$ {[ configuration E ]
}
http://host:port
, 匹配到 A, 精确匹配, 搜索终止http://host:port/index.html
, 匹配到 B, 前缀配置里找到 B, 正则配置里没找到, 所以最终使用 Bhttp://host:port/documents/index.html
, 匹配到 C, 前缀配置里找到 B 和 C, C 长将 C 设为候选, 正则配置里没找到, 所以最终使用 Chttp://host:port/images/1.gif
, 匹配到 D, 前缀配置里找到 B 和 D, D 长将 D 设为候选, 因 D 以^~
开头, 搜索终止, 最终使用 Dhttp://host:port/documents/1.jpg
, 匹配到 E, 前缀配置里找到 B 和 C, C 长将 C 设为候选, 正则配置里找到 E, 搜索终止, 最终使用 E
转发规则
响应静态资源
请求的 URI 会被添加到 root 指定的路径后, 在本地文件系统上形成请求文件的路径
# 匹配到 / 的, 服务器发送 /data/www 目录 + Path 路径 的文件
location / {root /data/www;
}
# 匹配到 /images/ 的, 服务器发送 /data 目录 + Path 路径 的文件
location /images/ {root /data;
}
案例说明
- http://host:port/a/b.gif
- 请求 URI 为 /a/b.gif
- 响应文件为 /data/www/a/b.gif
- http://host:port/images/a/b.gif
- 请求 URI 为 /images/a/b.gif
- 响应文件为 /data/images/a/b.gif
转发动态代理
Nginx proxy_pass
-
无需关心 location 后面的前缀是否以 / 结尾, 因为只有一种无关紧要的特殊情况, 绝大多数时候, 是否以 / 结尾没有区别
-
需要关心的是 proxy_pass 后面指定的 URL 中是否有 URI 部分. 即使端口后面只有 /, 那也是有 URI
- 有: 把请求 URI 中与 location 配置匹配的部分剔除掉, 然后拼到 proxy_pass 指定的 URL 后面
- 无: 把请求 URI 直接拼到 proxy_pass 指定的 URL 后面
- 通过这种方式可以魔改请求 URL, 达到隐藏真实 URL 的效果
-
除此之外, 还有 3 个例外情况
- location 使用正则或者 Named (@) 时, Nginx 无法确定要替换的请求 URI 中的哪一部分, 这时候 proxy_pass 后面不能带 URI
- 使用 rewrite 指令修改了请求的 URI 时, proxy_pass 指令中的 URI 会被忽略, 转发服务器将收到修改后的完整请求 URI
- 如果在 proxy_pass 指令中使用了 URI 变量, 它将原封不动地传递给转发服务器,替换原始的请求 URI
- 例如,在
proxy_pass http://127.0.0.1$request_uri;
中,$request_uri 变量将被替换为原始请求的 URI
- 例如,在
案例说明
location /test {proxy_pass http://localhost:8080/demo;
}
location /foo/bar {proxy_pass http://localhost:8080;
}
location /a {proxy_pass http://localhost:8080/;
}
location /b/c {proxy_pass http://localhost:8080/demo;
}
- http://host:port/test/a/b/c
- 请求 URI 是
/test/a/b/c
- 匹配到
location /test
- proxy_pass 后面的 url 有 uri 部分, uri 为
/demo
- 把匹配到 location 的 uri 开头部分的
/test
剔除, 剩余/a/b/c
- 拼到 proxy_pass 指定的 url 后面, 最终转发到
http://localhost:8080/demo/a/b/c
- 请求 URI 是
- http://host:port/foo/bar/a/b
- 请求 URI 是
/foo/bar/a/b
- 匹配到
location /foo/bar
- proxy_pass 后面的 url 无 uri 部分
- 拼到 proxy_pass 指定的 url 后面, 最终转发到
http://localhost:8080/foo/bar/a/b
- 请求 URI 是
- http://host:port/a/b/c
- 请求 URI 是
/a/b/c
- 匹配到
locataion /a
- proxy_pass 后面的 url 有 uri 部分, uri 为
/
- 把匹配到 location 的 uri 开头部分的
/a
剔除, 剩余/b/c
- 拼到 proxy_pass 指定的 url 后面, 最终转发到
http://localhost:8080//b/c
- 请求 URI 是
- http://host:port/b/c/d
- http://localhost:8080/demo/d
案例说明
后端服务为 http://springboot:8080/demo/user/list
# http://localhost/demo/user/list, 通
location /demo {proxy_pass http://springboot:8080;
}
# http://localhost/demo/user/list, 通
location /demo/user {proxy_pass http://springboot:8080;
}# http://localhost/test/user/list, 通
location /test {proxy_pass http://springboot:8080/demo;
}
# http://localhost/a/b/user/list, 通
location /a/b {proxy_pass http://springboot:8080/demo;
}
# http://localhost/a/b/c/list, 通
location /a/b/c {proxy_pass http://springboot:8080/demo/user;
}# http://localhost/demo/user/list, 通
location /demo {proxy_pass http://springboot:8080$request_uri;
}
相关文章:
Nginx 请求的 匹配规则 与 转发规则
博文目录 文章目录 URL 与 URI匹配规则案例说明 转发规则响应静态资源案例说明 转发动态代理案例说明案例说明 URL 与 URI 通常, 一个 URL 由以下部分组成 scheme://host:port/path?query#fragment scheme: 协议, 如 http, https, ftp 等host; 主机名或 IP 地址post: 端口…...
OWASP发布10大开源软件风险清单
3月20日,xz-utils 项目被爆植入后门震惊了整个开源社区,2021 年 Apache Log4j 漏洞事件依旧历历在目。倘若该后门未被及时发现,那么将很有可能成为影响最大的软件供应链漏洞之一。近几年爆发的一系列供应链漏洞和风险,使得“加强开…...
大学生前端学习第一天:了解前端
引言: 哈喽,各位大学生们,大家好呀,在本篇博客,我们将引入一个新的板块学习,那就是前端,关于前端,GPT是这样描述的:前端通常指的是Web开发中用户界面的部分,…...
公安机关人民警察证照片采集规范及自拍制作电子版指南
在当今社会,证件照的拍摄已成为我们生活中不可或缺的一部分。无论是办理身份证、驾驶证还是护照,一张规范的证件照都是必需的。而对于公安机关的人民警察来说,证件照片的采集更是有着严格的规范和要求。本文将为您详细介绍公安机关人民警察证…...
使用Python插入100万条数据到MySQL数据库并将数据逐步写出到多个Excel
Python插入100万条数据到MySQL数据库 步骤一:导入所需模块和库 首先,我们需要导入 MySQL 连接器模块和 Faker 模块。MySQL 连接器模块用于连接到 MySQL 数据库,而 Faker 模块用于生成虚假数据。 import mysql.connector # 导入 MySQL 连接…...
【备忘录】openssl记录
openssl genrsa -out ca.key 2048 openssl req -x509 -new -nodes -key ca.key -days 10000 -out ca.crt -subj “/CCN/STBeijing/LBeijing/Okubernetes/OUKubernetes-manual/CNkubernetes-ca” openssl genrsa -out etcd-ca.key 2048 openssl req -x509 -new -nodes -key etc…...
hadoop编程之工资序列化排序
数据集展示 7369SMITHCLERK79021980/12/17800207499ALLENSALESMAN76981981/2/201600300307521WARDSALESMAN76981981/2/221250500307566JONESMANAGER78391981/4/22975207654MARTINSALESMAN76981981/9/2812501400307698BLAKEMANAGER78391981/5/12850307782CLARKMANAGER78391981/…...
OpenXR手部跟踪接口与VIVE OpenXR扩展详细解析
随着虚拟现实技术的发展,手部跟踪已成为提高沉浸感和交互性的关键技术。OpenXR标准为开发者提供了一套手部跟踪的扩展接口,特别是针对VIVE设备的特定实现。以下是这些接口和类的详细解释: 1. VIVE.OpenXR.Hand VIVE.OpenXR.Hand 是HTC VIVE…...
慎投!5本On Hold全被剔除!新增9本SCI/SSCI被除名!4月WOS更新
本周投稿推荐 SSCI • 2/4区经管类,2.5-3.0(录用率99%) SCIE(CCF推荐) • 计算机类,2.0-3.0(最快18天录用) SCIE(CCF-C类) • IEEE旗下,1/2…...
华为云CodeArts IDE For Python 快速使用指南
CodeArts IDE 带有 Python 扩展,为 Python 语言提供了广泛的支持。Python 扩展可以利用 CodeArts IDE 的代码补全、验证、调试和单元测试等特性,与多种 Python 解释器协同工作,轻松切换包括虚拟环境和 conda 环境的 Python 环境。本文简要概述…...
C# 截图并保存为图片
在winform开发中,有时会用到截图并保存为图片的时候,这里列了三种保存图片的可能情况。 将窗体截图保存成图片的方式是: Bitmap bit new Bitmap(this.Width, this.Height);//实例化一个和窗体一样大的bitmap Graphics g Graphics.FromImag…...
[html]一个动态js倒计时小组件
先看效果 代码 <style>.alert-sec-circle {stroke-dasharray: 735;transition: stroke-dashoffset 1s linear;} </style><div style"width: 110px; height: 110px; float: left;"><svg style"width:110px;height:110px;"><cir…...
Hive-Sql复杂面试题
参考链接:hive sql面试题及答案 - 知乎 有哪些好的题目都可以给我哦 我来汇总到一起 1、编写sql实现每个用户截止到每月为止的最大单月访问次数和累计到该月的总访问次数 数据: userid,month,visits A,2015-01,5 A,2015-01,15 B,2015-01,5 A,2015-01,…...
WPS二次开发系列:WPS SDk功能就概览
作者持续关注WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397) 作者通过深度测试使用了WPS SDK提供的Demo࿰…...
华为OD-C卷-结队编程[200分]
题目描述 某部门计划通过结队编程来进行项目开发, 已知该部门有 N 名员工,每个员工有独一无二的职级,每三个员工形成一个小组进行结队编程, 结队分组规则如下: 从部门中选出序号分别为 i、j、k 的3名员工,他们的职级分别为 level[i],level[j],level[k], 结队小组满…...
连连看游戏页面网站源码,直接使用
可以上传自己喜欢的图片 游戏页面 通关页面 源码免费下载地址抄笔记 (chaobiji.cn)...
在 Kubernetes 1.24 中使用 Docker:配置与应用指南
在 Kubernetes 1.24 中使用 Docker:配置与应用指南 引言 随着 Kubernetes 社区对容器运行时接口(CRI)的标准化推进,Docker 原生支持在 Kubernetes 1.24 版本中被弃用。然而,许多开发者和组织仍希望继续使用 Docker。…...
Canvas使用详细教学:从基础绘图到进阶动画再到实战(海报生成、Flappy Bird 小游戏等),掌握绘图与动画的秘诀
一、Canvas基础 1. Canvas简介 Canvas是HTML5引入的一种基于矢量图形的绘图技术,它是一个嵌入HTML文档中的矩形区域,允许开发者使用JavaScript直接操作其内容进行图形绘制。Canvas元素不包含任何内在的绘图能力,而是提供了一个空白的画布&a…...
【MATLAB 分类算法教程】_2粒子群算法优化支持向量机SVM分类 - 教程和对应MATLAB代码
分类代码案例2:粒子群算法优化支持向量机SVM分类 - MATLAB完全代码教程 1. 初始化代码2. 读取数据代码3.数据预处理代码4.利用粒子群算法PSO求解最佳的SVM参数c和g代码5.根据最佳的参数进行SVM模型训练代码6.SVM模型预测代码7.准确率分析以及分类结果对比作图代码本文以红酒数…...
Vue2电商前台项目(三):完成Search搜索模块业务
目录 一、请求数据并展示 1.写Search模块的接口 2.写Vuex中的search仓库(三连环) 3.组件拿到search仓库的数据 用getters简化仓库中的数据 4.渲染商品数据到页面 5.search模块根据不同的参数获取数据展示 (1)把派发action…...
算法思想总结:链表
一、链表的常见技巧总结 二、两数相加 . - 力扣(LeetCode) class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {//利用t来存进位信息int t0;ListNode*newheadnew ListNode(0);//创建一个哨兵节点,方便尾插List…...
Android Room 记录一个Update语句不生效的问题解决记录
代码展示 1.数据实体类 Entity public class User {PrimaryKey(autoGenerate true)private long id;private String name;private String age;private String sex;public User(String name, String age, String sex) {this.name name;this.age age;this.sex sex;}public …...
使用SpringBoot3+Vue3开发公寓管理系统
项目介绍 公寓管理系统可以帮助公寓管理员更方便的进行管理房屋。功能包括系统管理、房间管理、租户管理、收租管理、房间家具管理、家具管理、维修管理、维修师傅管理、退房管理。 功能介绍 系统管理 用户管理 对系统管理员进行管理,新增管理员,修改…...
有且仅有的10个常见的排序算法,东西不多,怎么就背不下来呢
就这么跟你说吧,面试中肯定会出排序算法的算法题,你只需要背下来代码背下来他们的时间复杂度和空间复杂度就能蒙混过关。 不管你是前端还是后端,关于排序的算法有且仅有这 10个,如果你用心了,怎么会记不住呢。看完这篇…...
Mac安装配置ElasticSearch和Kibana 8.13.2
系统环境:Mac M1 (MacOS Sonoma 14.3.1) 一、准备 从Elasticsearch:官方分布式搜索和分析引擎 | Elastic上下载ElasticSearch和Kibana 笔者下载的是 elasticsearch-8.13.2-darwin-aarch64.tar.gz kibana-8.13.2-darwin-aarch64.tar.gz 并放置到个人…...
javaWeb项目-快捷酒店管理系统功能介绍
项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog 1、Spring Boot框架 …...
闲不住,手写一个数据库文档生成工具
shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 逛博客的时候,发现了一个很有意思的文章:数据库表结构导…...
在群晖上安装GPT4Free
什么是 GPT4Free ? GPT4Free 简称 G4F,是一个强大的大型语言模型命令行界面(LLM-CLI),旨在去中心化并提供免费访问先进人工智能技术的能力。G4F 的目标是通过提供用户友好和高效的工具,使人工智能民主化&am…...
C# 语言类型(四)—传递参数及其修饰符
总目录 C# 语法总目录 参考链接: C#语法系列:C# 语言类型(一)—预定义类型值之数值类型 C#语法系列:C# 语言类型(二)—预定义类型之字符串及字符类型简述 C#语法系列:C# 语言类型(三)—数组/枚举类型/结构体 C#语法系列:C# 语言类型(四)—传递参数及其修饰符 C#语法…...
刷穿力扣006-剑指offer一数组——02寻找目标值-二维数组
刷穿力扣006-剑指offer<一>数组——02寻找目标值-二维数组 基本面试题都是我带大家刷的力扣热题100和剑指offer的75道题,建议刷两遍!(ps:想找工作实习的同学,文末有面试八股和简历模板) 题目: 语言…...
爬虫(小案例)
点开其中一个链接, http://desk.zol.com.cn/dongman/huoyingrenzhe/(前面为浏览器自动补全,在代码里需要自己补全) 可以看到图片的下载地址以及打开本图集下一张图片的链接 了解完网站的图片构造后动手写代码,我们筛…...
环信 IM 客户端将适配鸿蒙 HarmonyOS
自华为推出了自主研发操作系统鸿蒙 HarmonyOS 后,国内许多应用软件开始陆续全面兼容和接入鸿蒙操作系统。环信 IM 客户端计划将全面适配统鸿蒙 HarmonyOS ,助力开发者快速实现社交娱乐、语聊房、在线教育、智能硬件、社交电商、在线金融、线上医疗等广泛…...
伪元素的使用
.box::after{content: ;display: block;// 定义元素位置margin-top: 12rpx;margin-right: 20rpx;// 定义元素宽高width: 36rpx;height: 36rpx;// background-image无法引用本地资源,故需要用网络地址background-image: url($urlcalendar.png);background-size: 100%…...
TensorFlow学习之:高级应用和扩展
生成对抗网络:了解GAN的基本原理,使用TensorFlow实现简单的GAN 生成对抗网络(Generative Adversarial Networks,GAN)由两部分组成:生成器(Generator)和判别器(Discrimin…...
maya模板导入动画
maya模板导入动画,第一帧为模板姿态 要将一个FBX文件中的动画数据导入另一个FBX文件的模板,并使得第一帧是模板的初始姿势,第二帧开始是动画,你可以在Maya中采用以下步骤来操作: 步骤 1: 导入模板FBX 首先ÿ…...
【微信小程序之分包】
微信小程序之分包 什么是分包分包的好处分包前的结构图分包后的结构图分包的加载规则分包的体积限制使用分包打包原则引用原则独立分包独立分包的配置方法独立分包的引用原则分包预下载配置分包的预下载分包预下载限制 什么是分包 分包指的是把一个完整小程序项目,…...
STM32-ADC(独立模式、双重模式)
ADC简介 18个通道:外部信号源就是16个GPIO回。在引脚上直接接模拟信号就行了,不需要侄何额外的电路。引脚就直接能测电压。2个内部信号源是内部温度传感器和内部参考电压。 逐次逼近型ADC: 它是一个独立的8位逐次逼近型ADC芯片,这个ADC0809是…...
03.卸载MySQL
卸载MySQL 1.Windows卸载MySQL8 停止服务 用命令停止或者在服务中停止都可以 net stop mysql(服务名字可以去服务里面看一下)控制面板卸载MySQL 卸载MySQL8.0的程序可以和其他桌面应用程序一样直接在控制面板选择卸载程序,并在程序列表中…...
2024.4.13 蓝桥杯软件类C++B组山东省赛 小记
大三老狗了 , 还是把精力放在考研上了 ,所以只是蓝桥杯的前一晚上把常用算法翻了翻。 其实还做了一场小模拟,两个题分值200分我狂砍了17分,bfs写半小时写不明白,所以晚上已经是心如死灰了,所以就早早睡觉了…...
Windows下IntelliJ IDEA远程连接服务器中Hadoop运行WordCount(详细版)
使用IDEA直接运行Hadoop项目,有两种方式,分别是本地式:本地安装HadoopIDEA;远程式:远程部署Hadoop,本地安装IDEA并连接, 本文介绍第二种。 一、安装配置Hadoop (1)虚拟机伪分布式 见上才艺&a…...
【每日刷题】Day16
【每日刷题】Day16 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 24. 两两交换链表中的节点 - 力扣(LeetCode) 2. 160. 相交链表 - 力扣&…...
【K8s】:在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)
【K8s】:在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从) 一、准备工作二、搭建nfs服务器2.1 安装 NFS 服务器软件包(所有节点执行)2.2 设置共享目录2.3 启动 NFS 服务器2.4 设置防火墙规则(可选&am…...
Vue内置组件TransitionGroup详细介绍
<TransitionGroup> 是一个内置组件,用于对 v-for 列表中的元素或组件的插入、移除和顺序改变添加动画效果。 和 <Transition> 的区别 <TransitionGroup> 支持和 <Transition> 基本相同的 props、CSS 过渡 class 和 JavaScript 钩子监听器…...
【机器学习300问】71、神经网络中前向传播和反向传播是什么?
我之前写了一篇有关计算图如何帮助人们理解反向传播的文章,那为什么我还要写这篇文章呢?是因为我又学习了一个新的方法来可视化前向传播和反向传播,我想把两种方法总结在一起,方便我自己后续的复习。对了顺便附上往期文章的链接方…...
【ZZULIOJ】1067: 有问题的里程表(Java)
目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy 提示 code 题目描述 某辆汽车有一个里程表,该里程表可以显示一个整数,为该车走过的公里数。然而这个里程表有个毛病:它总是从3变到5,而跳过数字4,里程表…...
A21 STM32_HAL库函数 之 I2c通用驱动程序 -- B -- 所有函数的介绍及使用
A21 STM32_HAL库函数 之 I2c通用驱动程序 -- B -- 所有函数的介绍及使用 1 该驱动函数预览1.12 HAL_I2C_Master_Sequential_Receive_IT1.13 HAL_I2C_Slave_Transmit_IT1.14 HAL_I2C_Slave_Receive_IT1.15 HAL_I2C_Slave_Sequential_Transmit_IT1.16 HAL_I2C_Slave_Sequential_R…...
简介:Asp.Net Core进阶高级编程教程
课程简介目录 🚀前言一、课程背景二、课程目的三、课程特点四、课程适合人员六、最后 🚀前言 本文是《.Net Core进阶编程课程》教程专栏的导航站(点击链接,跳转到专栏主页,欢迎订阅,持续更新…)…...
Linux系统中LVM与磁盘配额
目录 一、LVM逻辑卷管理 二、LVM的管理命令 物理卷管理 卷组管理 逻辑卷管理 *创建并使用LVM步骤 三、磁盘配额概述 实现磁盘限额的条件 Linux 磁盘限额的特点 四、磁盘配额管理 磁盘限额 一、LVM逻辑卷管理 能够在保持现有数据不变的情况下动态调整磁盘容量&#…...
手机重启手app没了
发现公司有些Android球机设备,安装了一些app,重启后app没了,还有公司的一些Android手机,原来是没问题的,不知道哪天起,只要重启,新安装的软件就会没了,很神奇。后来发现,…...
github上传代码
偷一下懒,把链接贴一下,后续再补充。 1.下载Git 【学习笔记】上传代码到GitHub(保姆级教程) 2.如何创建GitHub仓库 手把手教你在github上传文件 3.如何删掉GitHub仓库 github如何删除仓库或项目? 4.遇到的错误 …...
吴恩达深度学习笔记:优化算法 (Optimization algorithms)2.8
目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第二周:优化算法 (Optimization algorithms)2.8 Adam 优化算法(Adam optimization algor…...
CV每日论文--2024.5.15
1、Can Better Text Semantics in Prompt Tuning Improve VLM Generalization? 中文标题:更好的文本语义在提示微调中能否提高视觉语言模型的泛化能力? 简介:这篇论文介绍了一种新的可学习提示调整方法,该方法超越了仅对视觉语言模型进行微调的传统方…...
基于SpringBoot设计模式之创建型设计模式·生成器模式
文章目录 介绍开始架构图样例一定义生成器定义具体生成器(HTML格式、markdown格式)实体类HTML格式生成器MarkDown格式生成器 测试样例 总结优点缺点 介绍 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 如…...
c# 多线程同时只读不写DataTable的数据有没有可能出错,如果多线程并发读修改DataTable,如何处理,多线程同时修改DataTable数据
在C#中,如果多个线程同时执行只读操作(即不修改DataTable的内容),从理论上讲,应该是安全的。因为只读操作不会改变DataTable的状态,所以不会出现数据竞争或一致性问题。然而,实际情况可能会受到…...
6大部分,20 个机器学习算法全面汇总!!建议收藏!(上篇)
前两天有小伙伴说想要把常见算法的原理 公式汇集起来。 这样非常非常方便查看!分为上下两篇,下篇地址: 本次文章分别从下面6个方面,涉及到20个算法知识点: 监督学习算法 无监督学习算法 半监督学习算法 强化学习…...
C++ 计时器
文章目录 一、简介二、实现代码2.1 windows平台2.2 C标准库 三、实现效果 一、简介 有时候总是会用到一些计时的操作,这里也整理了一些代码,包括C标准库以及window自带的时间计算函数。 二、实现代码 2.1 windows平台 StopWatch.h #ifndef STOP_WATCH_H…...