Nginx核心功能 02
目录
Nginx代理技术核心概念
(一)正向代理(Forward Proxy)
1. 基本定义
2. 技术原理
3. 应用场景
(二)反向代理(Reverse Proxy)
1. 基本定义
2. 技术原理
3. 应用场景
一、部署实践指南
(一)基础环境准备
1. 服务器配置要求
2. 依赖包安装
(二)正向代理部署流程
1. 编译安装配置
2. 核心配置文件
3. 关键参数说明
4. 代理验证方法
(三)反向代理部署流程
1. 编译安装配置
2. 负载均衡配置
3. 高级功能配置
4. 配置验证命令
二、技术对比与选型建议
(一)核心差异对比表
(二)生产环境选型建议
三、安全加固措施
(一)基础安全配置
(二)SSL最佳实践
(三)WAF集成方案
四、技术演进趋势
(一)云原生架构适配
(二)性能优化方向
一、Nginx正则表达式核心语法解析
(一)PCRE正则规范支持
1. 基础元字符
2. 量词控制符
3. 捕获与非捕获分组
4. 预定义字符类
(二)Nginx正则匹配特性
二、Rewrite模块深度剖析
(一)Rewrite指令语法结构
1. 参数说明
2. 执行流程
(二)Flag标记详解
(三)Rewrite与Return对比
三、Rewrite规则实战配置
(一)基础路径重写案例
1. 移除URI中的index.php
2. 目录访问添加尾部斜线
五、性能优化与陷阱规避
(一)正则表达式优化原则
(二)Rewrite规则最佳实践
(三)典型问题解决方案
1. 重写循环检测
2. 中文路径处理
六、生产环境部署命令
(一)模块编译安装
(二)配置热加载
(三)自动化部署脚本
Nginx代理技术核心概念
(一)正向代理(Forward Proxy)
1. 基本定义
正向代理是客户端与目标服务器之间的中间层代理服务,其核心作用为:
- 接收客户端请求后代替客户端访问目标服务器
- 将响应结果返回客户端并隐藏客户端真实身份12
2. 技术原理
sequenceDiagramparticipant 客户端participant 正向代理服务器participant 目标服务器客户端->>正向代理服务器: HTTP/HTTPS请求正向代理服务器->>目标服务器: 转发请求目标服务器-->>正向代理服务器: 返回响应正向代理服务器-->>客户端: 返回数据
3. 应用场景
场景类型 | 具体说明 |
---|---|
网络访问控制 | 企业内网限制员工访问特定网站时,通过代理过滤非法请求 |
IP匿名保护 | 爬虫程序通过代理池轮转IP防止被目标网站封禁 |
跨国加速访问 | 用户通过海外代理服务器访问被地域限制的内容(如学术论文库) |
缓存加速 | 代理服务器缓存高频访问资源减少重复请求 |
(二)反向代理(Reverse Proxy)
1. 基本定义
反向代理是位于服务端的代理架构,核心特征表现为:
- 接收客户端请求后按策略分发至后端服务器集群
- 对外暴露统一访问入口并隐藏后端服务器拓扑结构34
2. 技术原理
sequenceDiagramparticipant 客户端participant 反向代理服务器participant 后端服务器1participant 后端服务器2客户端->>反向代理服务器: HTTP/HTTPS请求反向代理服务器->>后端服务器1: 转发请求后端服务器1-->>反向代理服务器: 返回响应反向代理服务器-->>客户端: 返回数据
3. 应用场景
场景类型 | 具体说明 |
---|---|
负载均衡 | 将流量按权重、轮询等策略分发至多台服务器 |
安全防护 | 通过代理层实施WAF防护、DDoS攻击过滤 |
SSL终端卸载 | 在代理层集中处理HTTPS加密解密,降低后端服务器计算压力 |
灰度发布 | 按比例将新版本流量导向特定服务器进行测试 |
一、部署实践指南
(一)基础环境准备
1. 服务器配置要求
# 操作系统版本验证
cat /etc/redhat-release # CentOS 7.6+ # 硬件最低配置
CPU: 2核+
内存: 2GB+
磁盘: 20GB+(建议SSD)
网络: 百兆带宽+
2. 依赖包安装
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
wget https://nginx.org/download/nginx-1.25.3.tar.gz
tar zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3
(二)正向代理部署流程
1. 编译安装配置
./configure --prefix=/usr/local/nginx-proxy --with-http_ssl_module
make && make install
2. 核心配置文件
nginxCopy Code
# /usr/local/nginx-proxy/conf/nginx.conf worker_processes 4; events { worker_connections 10240; } http { resolver 8.8.8.8 114.114.114.114 valid=300s; server { listen 3128; access_log logs/proxy.access.log; location / { proxy_pass $scheme://$http_host$request_uri; proxy_set_header Host $http_host; proxy_buffers 256 4k; proxy_connect_timeout 30s; } } }
3. 关键参数说明
参数项 | 作用说明 |
---|---|
resolver | 指定DNS解析服务器地址及缓存有效期 |
proxy_pass | 动态构建目标URL实现泛域名代理 |
proxy_buffers | 设置响应数据缓冲区大小(256个4KB块) |
proxy_connect_timeout | 代理服务器与目标服务器建立连接的超时时间 |
4. 代理验证方法
# 通过curl测试代理连通性
curl -x http://代理IP:3128 https://www.example.com # 浏览器代理配置
Chrome设置 > 高级 > 系统 > 打开代理设置 > 手动设置代理
(三)反向代理部署流程
1. 编译安装配置
./configure --prefix=/usr/local/nginx-reverse \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-stream
make && make install
2. 负载均衡配置
# /usr/local/nginx-reverse/conf/nginx.conf
upstream backend {server 192.168.1.101:8080 weight=5;server 192.168.1.102:8080 weight=3;server 192.168.1.103:8080 backup;keepalive 32;
} server {listen 443 ssl;server_name www.yourdomain.com;ssl_certificate /etc/ssl/certs/server.crt;ssl_certificate_key /etc/ssl/private/server.key;location / {proxy_pass http://backend;proxy_http_version 1.1;proxy_set_header Connection "";proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
3. 高级功能配置
# 健康检查配置
upstream backend {server 192.168.1.101:8080 max_fails=3 fail_timeout=30s;server 192.168.1.102:8080 max_fails=3 fail_timeout=30s;check interval=5000 rise=2 fall=3 timeout=1000 type=http;check_http_send "HEAD /health HTTP/1.0\r\n\r\n";check_http_expect_alive http_2xx http_3xx;
} # 缓存加速配置
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m max_size=10g; server {location / {proxy_cache mycache;proxy_cache_valid 200 302 10m;proxy_cache_key "$scheme$request_method$host$request_uri";}
}
4. 配置验证命令
nginx -t # 检查配置文件语法 systemctl reload nginx # 热加载配置
二、技术对比与选型建议
(一)核心差异对比表
对比维度 | 正向代理 | 反向代理 |
---|---|---|
部署位置 | 客户端网络边界 | 服务端网络边界 |
配置主体 | 客户端主动设置代理 | 服务端透明配置 |
核心功能 | 客户端身份隐藏/访问控制 | 服务端负载均衡/高可用 |
典型应用 | 爬虫/IP伪装/跨国加速 | 网站集群/微服务网关 |
性能消耗 | 中(需处理客户端多样化请求) | 高(承载大并发流量分发) |
(二)生产环境选型建议
-
正向代理适用场景
- 需要突破IP访问限制的跨国业务系统
- 企业内部上网行为审计管理
- 分布式爬虫系统的IP资源池建设
-
反向代理适用场景
- 日均PV超过百万的电商网站
- 需要SSL集中管理的金融平台
- 基于Kubernetes的微服务架构入口
三、安全加固措施
(一)基础安全配置
# 隐藏版本信息 server_tokens off; # 限制请求方法 if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; } # 防DDoS配置 limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
(二)SSL最佳实践
ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;
(三)WAF集成方案
# 使用ModSecurity模块 modsecurity on; modsecurity_rules_file /etc/nginx/modsec/main.conf; # 常见防护规则 SecRule REQUEST_HEADERS:User-Agent "nikto" "id:1001,deny,status:403" SecRule ARGS:username "@rx <script>" "id:1002,deny,status:403"
四、技术演进趋势
(一)云原生架构适配
-
Service Mesh集成
- 作为Istio Ingress Gateway替代方案
- 支持Envoy配置转换
-
Kubernetes Ingress Controller
- 实现自动服务发现
- 支持CRD扩展配置
(二)性能优化方向
-
硬件加速
- 启用SSL硬件加速卡(如QAT)
- 开启TCP BBR拥塞控制算法
-
协议优化
- HTTP/3(QUIC)协议支持
- 0-RTT TLS会话恢复
一、Nginx正则表达式核心语法解析
(一)PCRE正则规范支持
Nginx基于PCRE(Perl Compatible Regular Expressions)实现正则匹配,支持以下核心语法:
1. 基础元字符
. 匹配任意单个字符(除换行符)
^ 匹配字符串起始位置
$ 匹配字符串结束位置
\ 转义特殊字符(如\.匹配点号)
[...] 字符集(如[a-z]匹配小写字母)
[^...] 反向字符集(排除指定字符)
2. 量词控制符
* 匹配前项0次或多次
+ 匹配前项1次或多次
? 匹配前项0次或1次
{n} 匹配前项恰好n次
{n,} 匹配前项至少n次
{n,m} 匹配前项n到m次
3. 捕获与非捕获分组
(exp) 捕获分组并分配编号($1、$2)
(?:exp) 非捕获分组(仅组合不记录)
(?<name>exp) 命名捕获分组(通过$name引用)
4. 预定义字符类
\d 数字字符,等价于[0-9]
\D 非数字字符
\w 单词字符(字母、数字、下划线)
\W 非单词字符
\s 空白字符(空格、制表符等)
\S 非空白字符
(二)Nginx正则匹配特性
-
匹配模式修饰符:
i
:大小写不敏感(如~*
表示不敏感匹配)=
:精确匹配(完全相等)^~
:前缀匹配优先
-
变量支持:
if ($http_user_agent ~* "(android|iphone)") {# 匹配移动设备UA }
-
正则作用域:
server
块级正则location
路径级正则if
条件判断正则
二、Rewrite模块深度剖析
(一)Rewrite指令语法结构
rewrite regex replacement [flag];
1. 参数说明
参数 | 作用描述 |
---|---|
regex | PCRE正则表达式,用于匹配请求URI |
replacement | 替换后的目标URI(支持捕获组引用如1、1、2) |
flag | 控制重写行为(last、break、redirect、permanent等) |
2. 执行流程
graph TDA[客户端请求] --> B{URI匹配正则}B -- 匹配成功 --> C[执行replacement替换]C --> D{检查flag标记}D -- last --> E[重新搜索location]D -- break --> F[停止处理后续rewrite]D -- redirect --> G[返回302临时重定向]D -- permanent --> H[返回301永久重定向]B -- 匹配失败 --> I[继续后续处理]
(二)Flag标记详解
Flag类型 | 作用机制 | 典型应用场景 |
---|---|---|
last | 终止当前location的rewrite处理,重新发起location匹配 | 多级重写规则串联执行 |
break | 立即停止所有rewrite模块处理,直接进入内容处理阶段 | 防止重写循环 |
redirect | 返回302临时重定向,客户端重新发起请求 | A/B测试临时跳转 |
permanent | 返回301永久重定向,浏览器缓存跳转关系 | 网站域名更换 |
no-flag | 默认行为:继续按顺序执行后续rewrite规则 | 简单路径修正 |
(三)Rewrite与Return对比
特性 | rewrite指令 | return指令 |
---|---|---|
处理阶段 | 重写URI阶段 | 内容生成阶段 |
性能消耗 | 较高(需正则计算) | 极低(直接响应) |
适用场景 | URI路径逻辑修正 | 快速响应错误码或跳转 |
正则支持 | 完整PCRE语法 | 仅支持简单字符串匹配 |
客户端感知 | 服务器内部处理(无HTTP响应码变化) | 显式返回3xx/4xx/5xx状态码 |
三、Rewrite规则实战配置
(一)基础路径重写案例
1. 移除URI中的index.php
location / {# 将 /index.php/path 转换为 /pathrewrite ^/index\.php/(.*) /$1 last;# 隐藏入口文件
if ($request_uri ~* "^/index.php") {rewrite ^/index.php(.*) $1 permanent;}
}
2. 目录访问添加尾部斜线
# 确保目录访问格式统一if (-d $request_filename) {rewrite ^(.*[^/])$ $1/ permanent;
}
五、性能优化与陷阱规避
(一)正则表达式优化原则
- 避免贪婪匹配:尽量使用非贪婪量词
.*?
- 锚点精确锁定:使用
^
和$
限定匹配范围 - 减少捕获分组:优先使用非捕获分组
(?:)
- 利用字符集缩写:用
\d
替代[0-9]
(二)Rewrite规则最佳实践
实践要点 | 说明 |
---|---|
规则顺序优化 | 高频匹配规则前置,减少不必要的正则计算 |
避免重复匹配 | 使用last 或break 及时终止处理链 |
慎用if条件判断 | 尽量在location块中完成匹配,减少if使用频率 |
限制正则复杂度 | 单个正则不超过3层嵌套 |
利用map模块预处理 | 复杂匹配逻辑通过map预处理转为变量 |
(三)典型问题解决方案
1. 重写循环检测
# 添加循环计数器
set $rewrite_count 0; location / {rewrite ^/path1 /path2;rewrite ^/path2 /path1;# 循环超过3次则终止if ($rewrite_count > 3) {return 500;}set $rewrite_count $($rewrite_count + 1);
}
2. 中文路径处理
# 开启UTF-8模式匹配
charset utf-8;location / {# URL编码中文路径rewrite ^/(.*) /$1?args=$arg_args break;# 使用encoded_uri变量if ($uri ~* "[\x{4e00}-\x{9fa5}]+") {rewrite ^(.*)$ $scheme://$host$1 permanent;}
}
六、生产环境部署命令
(一)模块编译安装
# 查看现有模块
nginx -V 2>&1 | grep -o with-http_rewrite_module # 源码编译添加模块
./configure --prefix=/usr/local/nginx \
--with-http_rewrite_module \
--with-pcre=/path/to/pcre/source make && make install
(二)配置热加载
# 语法检查
nginx -t # 平滑重载
nginx -s reload # 查看运行中配置
ps aux | grep nginx | grep master | awk '{print $NF}' | xargs -I{} sh -c 'echo "PID: {}"; nginx -T -p $(cat /proc/{}/cwd | xargs)'
(三)自动化部署脚本
#!/bin/bash
# Nginx Rewrite规则自动部署脚本
CONF_PATH="/etc/nginx/conf.d/rewrite_rules.conf"
BACKUP_DIR="/etc/nginx/conf.bak/$(date +%Y%m%d)" # 备份原配置
mkdir -p $BACKUP_DIR
cp $CONF_PATH $BACKUP_DIR/ # 生成新配置 cat > $CONF_PATH << EOF
location /api {rewrite ^/api/v1/(.*)$ /v1/$1 last;rewrite ^/api/v2/(.*)$ /v2/$1 break;
} location ~* \.(php|jsp)$ {rewrite ^/(.*)\.(php|jsp)$ /$1.html permanent;
}
EOF # 验证并重载 if nginx -t;thensystemctl reload nginxecho "Rewrite规则部署成功"
elseecho "配置错误,已恢复备份"cp $BACKUP_DIR/rewrite_rules.conf $CONF_PATH
fi
相关文章:
Nginx核心功能 02
目录 Nginx代理技术核心概念 (一)正向代理(Forward Proxy) 1. 基本定义 2. 技术原理 3. 应用场景 (二)反向代理(Reverse Proxy) 1. 基本定义 2. 技术原理 3. 应用场景 一、…...
聊聊对Mysql的理解
目录 1、Sql介绍 1.1、SQL的分类 1.2、数据库的三大范式 1.3、数据表的约束 1.4、约束的添加与删除 2、核心特性 3、主要组件 4、数据结构原理 5、索引失效 6、常用问题 7、优势与局限 前言 MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典MySQL A…...
「Mac畅玩AIGC与多模态17」开发篇13 - 条件判断与分支跳转工作流示例
一、概述 本篇在多节点串联的基础上,进一步引入条件判断与分支跳转机制,实现根据用户输入内容动态走不同执行路径。开发人员将学习如何配置判断节点、定义分支规则,以及如何在工作流中引导执行方向,完成基础的逻辑控制。 二、环境准备 macOS 系统Dify 平台已部署并可访问…...
pycharm terminal 窗口打不开了
参考添加链接描述powershell.exe改为cmd.exe发现有一个小正方形,最大化可以看见了。...
JAVA:使用 MapStruct 实现高效对象映射的技术指南
1、简述 在 Java 开发中,对象之间的转换是一个常见的需求,尤其是在 DTO(数据传输对象)和实体类之间的转换过程中。手动编写转换代码既耗时又容易出错,而 MapStruct 是一个优秀的对象映射框架,可以通过注解生成高效的对象转换代码,从而大大提升开发效率。 本文将介绍 M…...
Linux线程深度解析:从基础到实践
Linux线程深度解析:从基础到实践 一、线程基础概念 1. 进程与线程定义 进程:一个正在运行的程序,是操作系统资源分配的最小单位(拥有独立的地址空间、文件描述符等资源),状态包括就绪、运行、阻塞。线程…...
【ROS2】launch启动文件如何集成到ROS2(Python版本)
一、简单实操 1.创建/打开一个功能包 mkdir -p my_ws/src cd my_ws/src ros2 pkg create my_pkg_example --build-type ament_python 2.创建Launch文件的存放目录 将所有启动文件都存储在launch包内的目录中。 目录结构如下所示: src/my_pkg_example/launch/…...
用 PyTorch 轻松实现 MNIST 手写数字识别
用 PyTorch 轻松实现 MNIST 手写数字识别 引言 在深度学习领域,MNIST 数据集就像是 “Hello World” 级别的经典入门项目。它包含大量手写数字图像及对应标签,非常适合新手学习如何搭建和训练神经网络模型。本文将基于 PyTorch 框架,详细拆…...
碰撞检测学习笔记
目录 SUMO 模拟碰撞 LimSim pygame模拟碰撞检测 SUMO 模拟碰撞 LimSim 多模态大语言模型(M)LLM的出现为人工智能开辟了新的途径,特别是提供增强的理解和推理能力,为自动驾驶开辟了新途径。本文介绍LimSim,LimSim的…...
Sway初体验
Sway(缩写自 SirCmpwn’s Wayland compositor[1])是一款专为 Wayland 设计的合成器,旨在与 i3 完全兼容。根据官网所述: Sway 是 Wayland 的合成器,也是 x11 的 i3 窗口管理器的替代品。它可以根据您现有的 i3 配置工作…...
《工业社会的诞生》章节
工业革命的技术前奏 早期工业技术双引擎: 【火药武器】:重塑战争形态与经济地理 新式青铜炮助力殖民扩张,开辟全球贸易网络 高桅帆船(西班牙大帆船)实现洲际航行 战争规模化倒逼中央集权,催生国家-商人…...
消息队列MQ
参考资料:https://cloud.tencent.com/developer/article/2335397 https://www.cnblogs.com/hahaha111122222/p/18457859 消息队列是大型分布式系统不可缺少的中间件,也是高并发系统的基石中间件 消息队列 消息队列 Message Queue 消息队列是利用高效可…...
LangChain4J-XiaozhiAI 项目分析报告
LangChain4J-XiaozhiAI 项目分析报告 GitHub 链接 1. 项目概述 本项目名为 “硅谷小智(医疗版)”,是一个基于 Java 技术栈和 LangChain4J 框架构建的 AI 聊天助手应用。其核心目标是利用大型语言模型(LLM)的能力&am…...
学习spring boot-拦截器Interceptor,过滤器Filter
目录 拦截器Interceptor 过滤器Filter 关于过滤器的前置知识可以参考: 过滤器在springboot项目的应用 一,使用WebfilterServletComponentScan 注解 1 创建过滤器类实现Filter接口 2 在启动类中添加 ServletComponentScan 注解 二,创建…...
【程序+论文】大规模新能源并网下的火电机组深度调峰经济调度
目录 1 主要内容 讲解重点 2 讲解视频及代码 1 主要内容 该视频为《大规模新能源并网下的火电机组深度调峰经济调度》代码讲解内容,该程序有完全对照的论文,以改进IEEE30节点作为研究对象,系统包括5个火电机组和2个新能源机组,…...
【win11 】win11 键盘测试
我的键盘是支持mac和win的,fn tab 就能切换,有可能是用错了模式,导致 我alt a 就会弹出 win11的 wifi 等菜单控制 键盘测试网站 https://keyboard.bmcx.com/ 识别到我按下的是alt...
再识动静态库
动静态库 1 手动制作静态库2 手动调用静态库方式一:(安装到系统)方式二:(和源文件一起)方式三:(使用带路径的库) 3 动态库制作与使用方式一:拷贝到系统方式二…...
前端 uni-app 初步使用指南
在数字化浪潮下,实现应用多端适配成为开发者的刚需。uni-app 凭借 “一次编写,多端运行” 的特性,极大提升了开发效率,成为前端开发的热门选择。如果你是首次接触 uni-app,这篇文章将带你开启 uni-app 的使用之旅&…...
尼卡音乐 1.1.1 | 免费畅听全网音乐,支持无损下载,无广告无需注册登录
尼卡音乐是一款可以免费畅听全网音乐的应用程序,支持免费下载无损高品质音源,并且没有任何广告,无需注册登录。用户可以轻松搜索全网无损音质音源,并可将其他音乐APP的歌单导入,让音乐陪你开心一整天。该应用彻底拒绝臃…...
33.降速提高EMC能力
降速提高EMC能力 1. 电磁兼容问题的错误累积效应2. 降速减少累积效应的机理分析 1. 电磁兼容问题的错误累积效应 2. 降速减少累积效应的机理分析 降速之后,信号的波形更完整,容错空间更大;另外边沿变缓,对外干扰也会减小。...
【赵渝强老师】TiDB的MVCC机制
TiDB是一款开源的国产分布式关系型数据库。TiKV是TiDB的行存引擎,它支持多版本并发控制(Multi-Version Concurrency Control,MVCC)。假设有这样一种场景:某客户端A在写一个Key,另一个客户端B同时在对这个Key进行读操作。如果没有数据的多版本…...
数电填空题整理(适用期末考试)
在下列门电路中,OC门能实现“线与”逻辑功能; 三态门能用于总线结构的数 据传输;传输门 能实现模拟信号的双向传输。 并联比较型A/D转换器的转换速度最快, 双积分型A/D转换器的稳定性和抗干扰能力最好 TTL与非门多余的输入端应该…...
node核心学习
目录 1-1node概述 1-2全局对象 1-3Node的模块化细节 1-4Node中的ES模块化 1-5基本内置模块 OS模块: path模块: url模块: util模块: 1-6文件IO I/O:input output fs模块的方法 代码示例: 练习…...
基于 PyQt 的YOLO目标检测可视化界面+ nuitka 打包
在人工智能和计算机视觉领域,YOLO(You Only Look Once)是一种广泛使用的实时目标检测算法。为了直观地展示YOLO算法的检测效果,我们使用Pyqt框架进行检测结果的可视化,同时为了使其能够脱离Python环境,我们…...
234树和红黑树
首先,把目光聚集在234树中 以下是234的三种节点(可以有更多这里使用以下的三个): 右侧是节点转换成红黑树节点的样子。 接下来会用以下序列进行1234树的搭建和红黑树的搭建: 首先是234树 2-3-4树(234树&…...
GenCLS++:通过联合优化SFT和RL,提升生成式大模型的分类效果
摘要:作为机器学习中的一个基础任务,文本分类在许多领域都发挥着至关重要的作用。随着大型语言模型(LLMs)的快速扩展,特别是通过强化学习(RL)的推动,对于更强大的分类器的需求也在不…...
maven坐标导入jar包时剔除不需要的内容
maven坐标导入jar包时剔除不需要的内容 问题描述解决方案 问题描述 maven坐标导入jar包时剔除不需要的内容 解决方案 Spring Boot 默认使用 Logback,需在 pom.xml 中排除其依赖: <dependency><groupId>org.springframework.boot</gro…...
Oracle OCP认证考试考点详解083系列06
题记: 本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。 26. 第26题: 题目 解析及答案: 关于块介质恢复,以下哪三项是正确的? A) 需恢复一个或多个…...
llfc项目分布式服务笔记
一、系统整体架构流程图(简明版) 复制代码 +---------------+ +------------------+ +----------------+ | 客户端 (Client) |--------->| GateServer |----------| StatusServer |<--+ +---------------+ +--------------…...
“链式前向星”等三种存图方式分别输出“无向无权图”的“DFS序列”
【DFS序列】 DFS序列(深度优先搜索序列),是树或图结构在深度优先遍历过程中生成的节点访问顺序记录。 下面三段代码,分别采用链式前向星、邻接表、邻接矩阵存图,输出图的“DFS序列”。 【DFS:链式前向星】…...
Lesson 16 A polite request
Lesson 16 A polite request 词汇 park n. 公园,停车场,庄园 v. 停车,泊车 例句:让我来停车。 Let me park. 相关:spot n. 车位 区别:garden n. 花园 [小,私家的] 例句:我们…...
【IP101】边缘检测技术全解析:从Sobel到Canny的进阶之路
🌟 边缘检测的艺术 🎨 在图像处理的世界里,边缘检测就像是给图像画眉毛 —— 没有它,你的图像就像一只没有轮廓的熊猫🐼。让我们一起来探索这个神奇的"美妆"技术! 📚 目录 基础概念 …...
Nx 智能分发机制(Nx Agents + Nx Cloud)
Nx 智能分发机制(Nx Agents Nx Cloud) 阶段关键做的事作用1. 收集信息- Project Graph:解析整个 workspace 依赖关系(谁依赖谁)- 历史统计:每次 CI 结束后将每个任务的实际用时与缓存命中情况上传…...
《“昊龙一号”:开启中国航天货运新时代》
中国航天新力量:昊龙一号登场 在 2024 年 10 月 29 日上午,神舟十九号载人飞行任务新闻发布会如一颗重磅炸弹,在航天领域激起千层浪。发布会上,一系列关乎中国载人航天工程未来走向的重要信息被披露,其中,“昊龙一号” 货运航天飞机入围空间站低成本货物运输系统总体方案…...
C++ 多态:原理、实现与应用
目录 引言 一、多态的概念 二、多态的定义及实现 (一)构成条件 (二)虚函数的深入理解 (三)虚函数的重写(覆盖) 三、抽象类 (一)概念 (二&…...
多模态大语言模型arxiv论文略读(五十八)
How Does the Textual Information Affect the Retrieval of Multimodal In-Context Learning? ➡️ 论文标题:How Does the Textual Information Affect the Retrieval of Multimodal In-Context Learning? ➡️ 论文作者:Yang Luo, Zangwei Zheng, …...
TS 枚举类型
枚举 参数为枚举成员中的一个 数字枚举 字符串枚举 枚举特点 、 缺点:转为JS代码时会编译成JS代码,增大开销...
Python容器与循环:数据处理的双剑合璧
Python作为一门简洁强大的编程语言,其容器类型和循环结构的完美结合为数据处理提供了极大的便利。本文将带领初学者深入理解Python中的四大容器(列表、元组、字典、集合)以及它们与循环结构的配合使用,助你掌握数据处理的核心技能…...
ST-LINKV2仿真器下载
ST-LINKV2仿真器 — 正点原子资料下载中心 1.0.0 文档...
RAGFlow 接入企业微信应用实现原理剖析与最佳实践
背景 近期有医美行业客户咨询我们智能客服产品,期望将自己企业的产品、服务以及报价信息以企微应用的方式给到客户进行体验互动,提升企业运营效率。关于企业微信对接,我们分享下最佳实践,抛砖引玉。效果图如下: 这里也…...
大模型实践:图文解锁Ollama在个人笔记本上部署llm
使用在线模型服务时,我们常常需要支付API调用费用,这对于个人开发者或小型组织来说可能是一笔不小的开支。那么,有没有方法可以在本地免费使用这些强大的模型呢?答案是肯定的——Ollama就是这样一个工具。 当然如果是比较大的组织…...
如何提高情商?(优化版)
引言 提高情商(EQ)是一个需要长期练习和自我反思的过程,核心在于理解自己、管理情绪、共情他人并有效沟通。以下是一些具体且可操作的方法,结合理论和实际场景,帮助你逐步提升: 一、核心方法:…...
学习黑客Linux权限
在 Linux 的王国里,“权限”就是装备与技能加成:决定谁能拔剑(读 r)、挥剑(写 w)、进入房间(执行 x)。本文用“闯关升级”视角,把常见 rwx、八进制数字、SUID/SGID/Stick…...
信息系统监理师第二版教材模拟题第二组(含解析)
信息系统监理师模拟题第二组(30题) 监理理论与法规 根据《信息系统工程监理暂行规定》,监理单位应当独立于( ) A. 建设单位和承建单位 B. 政府监管部门 C. 行业组织 D. 最终用户答案:A 解析:监理单位应当保持独立性,不得与建设单位和承建单位有隶属关系或其他利害关系…...
C与指针——输入输出
错误定位 当一个库函数出错时,errno会被重置 perror(const char* s);\\输出s: errno 对应的错误信息 \\如果单独想要错误信息可以 char* e strerror(errno);\\系统错误码转换为对应的错误信息字符串输出缓冲区 一般输出缓冲区满的时候才刷新,也就是…...
RR(Repeatable Read)级别如何防止幻读
在 MySQL 数据库事务隔离级别中,RR(可重复读) 通过 MVCC(多版本并发控制) 和 锁机制 的组合策略来避免幻读问题。 一、MVCC机制:快照读与版本控制 快照读(Snapshot Read) 每个事务启…...
Python之学习笔记(六)
文章目录 1. 字典(Dictionary)2. 集合(Set)3. 字典 vs 集合4. 应用场景5. 注意事项 Python中的字典( dict)和集合( set)是两种高效且常用的数据结构,适用于不同的场景。…...
Easy云盘总结篇-文件上传02
说在前面:此项目是跟着B站一位大佬写的,不分享源码,支持项目付费 文件预览 主要分视频和其他文件预览,但实现逻辑相同,只是请求路径有区别。 这段逻辑: 拿视频预览举例: 视频开始时ÿ…...
window-docker的容器使用宿主机音频设备
文章目录 前言操作配置 前言 你有没有遇到过这种情况? 你兴冲冲地在Windows上用Docker搭了个语音识别项目,准备让容器高歌一曲,或者至少"Hey Docker"一下。结果——静音。 Docker Desktop一脸无辜:“亲,默…...
NaVILA: Legged Robot Vision-Language-ActionModel for Navigation
摘要 本文旨在解决基于视觉与语言导航(VLN)在四足机器人上的实现问题。该任务不仅为人类提供了一种灵活的指令方式,还使机器人能够在更具挑战性和杂乱的场景中导航。然而,将人类自然语言指令转换为低层次的腿部关节控制指令并非易…...