当前位置: 首页 > news >正文

location重定向和nginx代理

文章目录

  • 1 location重定向
    • 1.1 概述
    • 1.2 rewrite跳转
    • 1.3 用例
    • 1.4 实验
      • 1.4.1 基于域名的跳转
      • 1.4.2 基于ip的跳转
      • 1.4.3 基于后缀名的跳转
  • 2 nginx的代理
    • 2.1 nginx内置变量
    • 2.2 正向代理
      • 2.2.1 固定正向代理
      • 2.2.2 自动代理
    • 2.3 反向代理
      • 2.3.1 负载均衡的算法
      • 2.3.2 负载均衡的特点
      • 2.3.3 负载均衡的语法
        • 2.3.3.1 七层代理
        • 2.3.3.2 四层代理

1 location重定向

1.1 概述

重定向:就是输入的网站之后会跳转到设定的目标网址。

使用场景

1、更换域名

2、特殊情况,比如页面需要维护,但是不想中断服务,可以实现url的跳转,访问正常的服务器。

3、防盗链

1.2 rewrite跳转

rewrite:使用nginx提供的全局变量或者是自定义设置的变量,结合正则表达式和标志位实现url/uri重定向。

  • 前提:编译安装时需配置有ngx_http_rewrite_module 支持url重定向

    支持条件判断:if语句(没有else)

  • 语法配置:

rewrite 正则表达式 跳转后的内容 标志位
  • 标志位的类型:

    • permanent:返回码是301,永久重定向

    • redirect:返回码302,临时重定向

    • break:跳转时不会改变url

      break是按照location的规则进行匹配的,匹配到即终止。返回码是200,不属于3**开头的重定向范围之内。

    • last:本条规则匹配完毕之后,继续向下匹配新的location规则

      last一旦陷入死循环,内部循环10次就会停止,然后报错500。

    breaklast没有跳转的返回码,属于匹配location的机制

  • 500(内部服务器错误)排错:

    ​ 一、服务器故障

    ​ 二、防火墙屏蔽

    ​ 三、应用的端口没有启动

    ​ 1、配置文件写错了

    ​ 2、有其他应用占用了本服务的端口

    ​ 3、服务器资源不够,应用无法启动

    ​ 4、磁盘空间不足

    ​ 四、last匹配机制导致陷入死循环,10次之后就会报错500

    ​ 五、检查网络

1.3 用例

在这里插入图片描述

rewrite /test/(.*)/xy104/$1 redirect;
  • (.*):正则表达式匹配的内容进行捕获

  • $1:前面正则表达式捕获的内容

    /usr/local/nginx/html/test/index.html --------------> /usr/local/nginx/html/xy104/index.html

  • 301和302:

    • 301永久重定向:永久性的变更url,搜索引擎的排名和权重会转移到新的url,客户端会保留新的url。
    • 302临时重定向:短期的url变更,一般用在维护时,搜索引擎的排名和权重不会转移到新的url。客户端会继续访问原始的url。

1.4 实验

1.4.1 基于域名的跳转

http://www.xy105.com --------------> http://www.xy104.com

vim /usr/local/nginx/conf/nginx.confserver {listen 80;server_name www.xy105.com;charset utf-8;#access_log logs/host.access.log main;location / {if ($host = 'www.xy105.com') {rewrite ^/(.*)$ http://www.xy104.com/$1 permanent;}root html;index index.html index.htm;}
}nginx -t
systemctl restart nginx.servicevim /etc/hosts
# 本地添加ip域名映射
192.168.159.210 www.xy105.com www.xy104.com

在这里插入图片描述

rewrite ^/(.*)$ http://www.xy104.com/$1 permanent;

匹配$host的路径,即将http://www.xy105.com/(.*) 重定向至http://www.xy104.com/$1

1.4.2 基于ip的跳转

192.168.159.210服务器的网页正在维护,只有本机可以访问,其他主机访问统一显示正在维护中

vim /usr/local/nginx/conf/nginx.confserver {listen       80;server_name  www.xy105.com;charset      utf-8;#access_log  logs/host.access.log  main;set $rewrite true;#set 设置变量的值,$rewrite的值设置布尔类型的trueif ($remote_addr = '192.168.159.210') {#$remote_addr获取客户端请求的ip地址set $rewrite false;#重新定义rewrite的值是false,不进行重定向}if ($rewrite = true) {rewrite (.+) /error.html;#非192.168.159.210的ip地址,统一跳转到/error.html的页面内容}location = /error.html {root   html;}location / {root   html;index  index.html index.htm;}
}echo "正在维护中" > html/error.html
echo "testing" > html/index.html 
systemctl restart nginx.service

在这里插入图片描述

1.4.3 基于后缀名的跳转

http://www.xy105.com/test1/index.php
http://www.xy104.com

vim /usr/local/nginx/conf/nginx.confserver {listen 80;server_name www.xy105.com;charset utf-8;#access_log logs/host.access.log main;location ~* \.php$ {rewrite ^/(.*)(\.php)$ http://www.xy104.com;root html;index index.html;}
}

在这里插入图片描述

2 nginx的代理

常见的代理有VPN

在内网环境中,只有特定的ip地址才可能访问内网的服务(ssh,网页):堡垒机(跳板机)

nginx代理

  • 正向代理(七层代理)

    • 正向代理的原理:访问一个代理的地址--------------> 目标访问的网页
  • 反向代理(四层代理、七层代理)

    • 四层(传输层):ip+端口
    • 七层(应用层):http协议

四层代理和七层代理之间的区别:

  • 四层代理是基于tcp/ip协议层的代理转发方式,只是基于ip+端口号的形式实现代理。四层代理无法获取http请求中的url信息,只是对数据包进行转发。

    • 四层转发数据包,是由内核进行转发,速度更快。
  • 七层代理是通过http协议进行代理转发的方式

    • 处理http的请求和响应,当收到http请求之后,根据代理的方式,把http请求转发到指定的服务器。

    • 可以对http请求进行深入的分析和处理的。可以对请求内容做路由,流量控制,可以内容过滤等等。

    • 七层代理是由应用层处理,用户态来处理,速度相对较慢,但是更安全,更可靠

同时能做四层代理和七层代理的:nginxHaproxy

LVS:只能做四层转发

2.1 nginx内置变量

  • $uri:可以获取客户端请求的地址,不包含主机和查询的参数

  • $request_uri:获取客户端的请求地址,包含主机和查询参数

  • $host:请求的主机名,客户端----发送请求的url地址

  • $http_user_agent:获取客户端请求的浏览器和操作系统

  • $remote_addr:客户端的ip地址(可以隐藏)

  • $remote_port:客户端请求的端口

  • $server_addr:可以查询到服务端的ip地址

  • $server_port:服务端的端口号

  • $request_method:获取客户端的请求方式,get/post

  • $scheme:获取请求的协议 http协议 https

  • $request_filename:获取客户端请求的文件名

  • $document_root:当前请求的根目录

nginx在配置location匹配时,会使用两个获取头部的内置变量:

  • X-Real-IP:直接向服务端发送客户端访问的真实ip地址

    proxy_set_header X-Real-IP $remote_addr;
    
  • X-Forwarded-For:传递完整的代理链,只要数据包经过代理,都会被传送nginx,记录所有的代理地址和客户端的真实ip。

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    

实验:查看nginx内置变量

location / {root html;index index.html index.htm;default_type text/plain;return 200 "test1:$uri\ntest2:$request_uri\ntest3:$host\ntest4:$http_user_agent\ntest5:$remote_addr\ntest6:$remote_port\ntest7:$server_addr\ntest8:$server_port\ntest9:$request_method\ntest10:$scheme\ntest11:$request_filename\ntest12:$document_root";
}

2.2 正向代理

2.2.1 固定正向代理

mkdir /usr/local/nginx/conf.d
vim /usr/local/nginx/conf/nginx.confhttp {include mime.types;default_type application/octet-stream;include /usr/local/nginx/conf.d/*.conf;#添加了这一段之后,可以在conf.d这个目录里面,配置多个conf文件,也可以有其他的配置文件,作为服务的配置文件
}#因为是写在主配置文件nginx.conf的http模块中,所以直接写server模块
server {listen 8888;server_name localhost;resolver 218.2.135.1 valid=300 ipv6=off;#设置dns的解析地址,解析的缓存时间是300秒,每隔300秒重新解析一次resolver_timeout 3s;#设置解析服务的超时3秒proxy_read_timeout 30s;#设置代理服务器读取的超时时间proxy_send_timeout 30s;#代理服务器向后端服务器发送数据的超时时间proxy_connect_timeout 30s;#代理服务器和后端服务器连接的超时时间#固定代理地址set $url "www.baidu.com";location / {proxy_pass http://$url;#请求转发的语句 只要你访问nginx 192.168.233.61------->> www.baidu.com ip+端口 url:8080#正向代理的缓存配置proxy_buffers 256 4k;#设置后端缓存影响的缓冲区为256个,每个大小为4k。proxy_max_temp_file_size 0;#nginx不保存响应数据的临时文件,防止文件过多,占用硬盘空间proxy_cache_valid 200 302 1m;#针对响应码是200和302,缓存的有效期是1分钟proxy_cache_valid 301 1h;#针对响应码是301,缓存的有效期是1小时proxy_cache_valid any 1m;#除了200,301,302以外,其他的响应码都缓存1分钟}
}

2.2.2 自动代理

vim /usr/local/nginx/conf.d/auto_proxy.conf
server {listen 8889;location / {proxy_pass $scheme://$http_host$request_uri;#请求代理的地址自动设置  自动选择协议 http https $http_host 目标主机 $request_uri包含完整的请求的路径proxy_set_header Host $http_host;#在请求头当中传递客户端的host信息proxy_set_header X-Real-IP $remote_addr;#设置客户端的请求当中包含真实的ip地址proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#传递客户端经过的代理地址proxy_set_header X-Forwarded-Proto $scheme;#传递客户端的请求的协议信息http httpsproxy_set_header X-Forwarded-Host $host;#传递客户端的主机名(IP地址)proxy_set_header X-Forwarded-Port $server_port;#传递给服务端,客户端请求服务端的端口resolver 218.2.135.1;#设置dns地址resolver_timeout 10s;proxy_buffers 256 4k;proxy_max_temp_file_size 0;proxy_cache_valid 200 302 1m;		proxy_cache_valid 301 1h;		proxy_cache_valid any 1m;}		
}curl -x http://192.168.159.210:8889 http://www.sina.com
#自动代理只能通过命令行的命令实现

2.3 反向代理

2.3.1 负载均衡的算法

  • 轮询:round robin(rr)负载均衡的默认算法,请求轮流分配给后端服务器。

    轮询算法适用于后端服务器处理能力相近的情况,默认的算法,可以不加。

  • 加权轮询:weight round robin 轮询的升级版,给每个后端服务器赋予不同的权重。

    处理能力更强的服务器设置更高的权重。处理能力的低的,设置低权重。

    高峰时间可以通过这个方法进行流量的优化。适用于服务器处理能力差异比较大的情况。

  • ip_Hash:当访问后端服务器,根据客户端的ip地址,使用hash算法计算出ip地址的hash值,然后再把请求发送到相应的后端服务器。

    如果客户端访问的ip地址相同,通过hash算法,再一次的请求会被分配到上一次访问的服务器。保证会话的稳定。

    负载均衡的会话保持通过ip_hash实现。会话保持到期之后,会话中断,重新请求会重新计算hash值。

  • 最小连接数:最少连接数的算法可以将请求发送到当前连接比较少的后端服务器。(通常配合加权轮询一块使用)

    这种算法适用后端服务器处理任务耗时不同的情况,可以有效的避免所有的请求集中在处理能力更强的后端服务器上。

  • URL_HASH:根据请求当中url地址来计算hash值,如果客户端请求的url请求相同,客户端的请求会被分配到同一个服务器上。

    如果后台服务器的数量发生变化,会影响结果。

2.3.2 负载均衡的特点

  • 根据算法把请求分发到不同的服务器。
  • 客户端访问的是代理地址,响应也是代理服务器响应。
  • 客户端并不了解后端服务器的情况。
  • 可以提高安全性,后端服务器是隐藏的。
  • 负载均衡是有缓存的,可以直接访问缓存,提高响应速度。

2.3.3 负载均衡的语法

实验架构如下:

nginx1—192.168.159.200—代理服务器

nginx2—192.168.159.210—后端服务器1

nginx3—192.168.159.220—后端服务器2

客户端:浏览器

配置流量分发,主要是依靠代理服务器完成的,主要配置在代理服务器完成,配置算法。

2.3.3.1 七层代理

upstream:模块仅支持http协议,用来处理http的请求和响应

语法upstream只能写在http模块当中。不能在server也不在全局。

  • 轮询
http {upstream kc {server 192.168.159.210;server 192.168.159.220;}server {location / {root   html;index  index.html index.htm;proxy_pass http://kc;}}
}
  • 加权轮询
http {upstream kc {server 192.168.159.210 weigh=100;server 192.168.159.220 weight=50;}server {location / {root   html;index  index.html index.htm;proxy_pass http://kc;}}
}
  • ip_Hash
http {upstream kc {ip_hash;server 192.168.159.210;server 192.168.159.220;}server {location / {root   html;index  index.html index.htm;proxy_pass http://kc;}}
}
  • 最小连接数
http {upstream kc {least_conn;server 192.168.159.210 weigh=100;server 192.168.159.220 weight=50;}server {location / {root   html;index  index.html index.htm;proxy_pass http://kc;}}
}
  • URL_HASH
http {upstream kc {hash $request_uri consistent;server 192.168.159.210 weigh=100;server 192.168.159.220 weight=50;}server {location / {root   html;index  index.html index.htm;proxy_pass http://kc;}}
}
2.3.3.2 四层代理

四层代理必须在nginx安装时配置stream模块

stream:不支持http协议,仅支持tcp和udp,处理数据包的流量分发

语法四层代理需要写在全局模块当中

  • 轮询
stream {upstream kc {server 192.168.159.210:80;#需要写明端口号server 192.168.159.220:80;}server {listen 81;#需要修改端口号,否则会和http模块中的server模块监听端口冲突proxy_pass kc;}
}
  • 加权轮询
stream {upstream kc {server 192.168.159.210:80 weight=100;server 192.168.159.220:80 weight=50;}server {listen 81;proxy_pass kc;}
}
  • 最小连接数
stream {upstream kc {least_conn;server 192.168.159.210:80;#需要写明端口号server 192.168.159.220:80;}server {listen 81;#需要修改端口号,否则会和http模块中的server模块监听端口冲突proxy_pass kc;}
}

ip_hash和url_hash不能在四层代理当中使用的。

相关文章:

location重定向和nginx代理

文章目录 1 location重定向1.1 概述1.2 rewrite跳转1.3 用例1.4 实验1.4.1 基于域名的跳转1.4.2 基于ip的跳转1.4.3 基于后缀名的跳转 2 nginx的代理2.1 nginx内置变量2.2 正向代理2.2.1 固定正向代理2.2.2 自动代理 2.3 反向代理2.3.1 负载均衡的算法2.3.2 负载均衡的特点2.3.…...

iptables详解

华子目录 什么是防火墙分类netfilter(数据包过滤)定义netfilter分析内容 防火墙无法完成的任务netfilter策略管理工具netfilter的5类hook函数防火墙规则策略匹配原则iptablesiptables流量处理动作iptables表5种规则表 安装iptablesiptables策略文件 ipta…...

Edge SCDN深度解析,边缘安全加速的创新实践

边缘安全加速(Edge Secure Content Delivery Network,SCDN)是酷盾安全推出的边缘集分布式 DDoS 防护、CC 防护、WAF 防护、BOT 行为分析为一体的安全加速解决方案。通过边缘缓存技术,智能调度使用户就近获取所需内容,为…...

solidworks常见问题已解决

solidworks常见问题已解决 问题1:step总是提示默认模板无效。问题2:异型孔向导”时出现了“找不到标准数据库。问题3:找不到CalloutForm.txt文件,标注将由几何体定义。问题5:工程图显示文件损坏不能保存。问题6&#x…...

vCenter开启HA报错

昨天给客户开启vCenter开启HA功能报错,报错的内容比较多 博通官方给出解决办法 https://knowledge.broadcom.com/external/article/318929/error-vsphere-ha-agent-cannot-be-correct.html 常规的解决办法 1.关闭集群HA,再次开启HA 2.主机进入维护模式,再次加入…...

在 Ubuntu 中 make 是否是系统自带的?怎么样查看Linux系统中是否有make?

make 命令 并不是所有 Ubuntu 系统都默认安装的,但它通常是开发工具链的一部分,许多开发者会在安装系统后配置它。make 是一个非常重要的构建工具,用于自动化编译和构建过程,特别是在编译软件或内核时。 make 的来源 make 是一个…...

js:我要在template中v-for循环遍历这个centrerTopdata,我希望自循环前面三个就可以了怎么写

问&#xff1a; 我按在要在template中v-for循环遍历这个centrerTopdata&#xff0c;我希望自循环前面三个就可以了怎么写&#xff1f; 回答&#xff1a; 问&#xff1a; <div v-for"(item, index) in centrerTopdata.slice(0, 3)" :key"index"> d…...

前端使用 Cursor 的最佳助手 - PromptCoder

前端使用 Cursor 的最佳助手 - PromptCoder 你是否正在使用 Cursor 进行前端开发&#xff0c;却苦于繁琐的代码生成和原型图的还原&#xff1f;你是否渴望一个更高效、更智能的工具来提升你的开发效率&#xff1f;那么&#xff0c;你一定不能错过 PromptCoder&#xff01; Pr…...

深入了解 Spring IOC,AOP 两大核心思想

文章目录 一、Spring 基础 - 控制反转&#xff08;IOC&#xff09;1.1. 引入1.2. 如何理解 IOCSpring Bean 是什么&#xff1f;IoC 是什么&#xff1f;IoC 能做什么&#xff1f;IoC 和 DI 是什么关系&#xff1f; 1.3. IoC 配置的三种方式xml 配置Java 配置注解配置 1.4. 依赖注…...

QT从入门到精通——Qlabel介绍与使用

1. QT介绍——代码测试 Qt 是一个跨平台的应用程序开发框架&#xff0c;广泛用于开发图形用户界面&#xff08;GUI&#xff09;应用程序&#xff0c;也支持非图形应用程序的开发。Qt 提供了一套工具和库&#xff0c;使得开发者能够高效地构建高性能、可移植的应用程序。以下是…...

华为HarmonyOS NEXT 原生应用开发:鸿蒙中组件的组件状态管理、组件通信 组件状态管理小案例(好友录)!

文章目录 组件状态管理一、State装饰器1. State装饰器的特点2. State装饰器的使用 二、Prop装饰器&#xff08;父子单向通信&#xff09;1. Prop装饰器的特点2. Prop装饰器的使用示例 三、Link装饰器&#xff08;父子双向通信&#xff09;1. Link装饰器的特点3. Link使用示例 四…...

node.js 环境配置

node_global下创建node_modules 系统变量 新建NODE_Path -> node_modules的路径 用户变量 编辑Path 编辑…\npm为 node_modules的路径 系统变量 Path 新建 %NODE_PATH% CMD测试 npm install express -g 报错 npm error code ETIMEDOUT源的连接超时&#xff0c;没用了要换源 …...

高并发数据采集场景下Nginx代理Netty服务的优化配置

高并发数据采集场景下&#xff0c;要优化Nginx反向代理来支持多个Netty数采服务并保证稳定的性能&#xff0c;可以从以下几个方面对Nginx进行优化配置。 直连模式&#xff08;直接通过 Nginx 处理与后端 Netty 服务的连接&#xff0c;而不作为反向代理&#xff09;&#xff0c;…...

【C++算法】40.模拟_N 字形变换

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a; 题目链接&#xff1a; 6. N 字形变换 题目描述&#xff1a; 解法 解法一&#xff1a;模拟 a,b,c,d,e,f,g...... n4 弄个矩阵放进去&#xff0c;最后从左往右读取。 解法二&#xff1a;模拟优化-…...

【云计算】虚拟化技术

目录 1. 虚拟化技术在云计算中的那些地方发挥了关键作用&#xff1f; 2. 比较VMare&#xff0c;Xen等虚拟化产品的关键技术&#xff0c;以及对云计算技术提供的支持&#xff1f; 3. 服务器虚拟化&#xff0c;存储虚拟化和网络虚拟化都有哪些实现方式&#xff1f; 4. 讨论桌面…...

手机租赁系统开发指南一站式服务流程解析

内容概要 手机租赁系统的开发是一个复杂但有趣的过程&#xff0c;像搭建乐高一样&#xff0c;只要找到合适的模块&#xff0c;就能打造出一个宾至如归的租赁平台。在这部分&#xff0c;我们将对开发流程的整体结构进行简要概述&#xff0c;并指出每个环节的重要性。 首先&…...

【机器学习】—时序数据分析:机器学习与深度学习在预测、金融、气象等领域的应用

云边有个稻草人-CSDN博客 目录 引言 1. 时序数据分析基础 1.1 时序数据的特点 1.2 时序数据分析的常见方法 2. 深度学习与时序数据分析 2.1 深度学习在时序数据分析中的应用 2.1.1 LSTM&#xff08;长短期记忆网络&#xff09; 2.2 深度学习在金融市场预测中的应用 2…...

OBS + SRS:打造专业级直播环境的入门指南

OBS SRS&#xff1a;打造专业级直播环境的入门指南 1. OBS简介2. OBS核心功能详解2.1 场景&#xff08;Scenes&#xff09;管理2.2 源&#xff08;Sources&#xff09;控制2.3 混音器功能2.4 滤镜与特效2.5 直播控制面板 3. OBS推流到SRS服务器配置指南3.1 环境准备3.2 OBS推流…...

收银系统源码-会员管理

会员制早已成为门店经营首选的营销工具&#xff0c;尤其是针对连锁多门店会员管理尤为重要。 必然要求门店的收银系统需要支持会员管理&#xff0c;能提供多种会员权益&#xff1b; 1.会员类型 收银系统支持常规会员、plus付费会员、可绑定实体卡&#xff1b; plus会员&…...

MongoDB深化与微软的合作,新增人工智能和数据分析集成和微软 Azure Arc支持

日前&#xff0c;在微软Ignite技术大会上&#xff0c;MongoDB公司宣布面向MongoDB与微软共同客户推出三项新功能&#xff0c;双方协作更进一步。首先&#xff0c;需要构建由检索增强生成 (RAG) 技术驱动的应用程序的客户&#xff0c;现在可以选择MongoDB Atlas作为微软Azure AI…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...