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

Nginx进阶-常见配置(三)

nginx 变量

Nginx的配置文件使用的语法的就是一门微型的编程语言。既然是编程语言,一般也就少不了“变量”这种东西。

Nginx配置文件使用的语法主要包括以下几个方面:
(1)配置块 (Block Directives):
Nginx配置文件由多个嵌套的配置块组成。
示例配置块如 http, server, 和 location。
配置块以名称开始,后面跟着一对花括号 {},其中包含具体的指令。
(2)指令 (Directives):
指令是Nginx配置的核心组成部分,决定了Nginx如何处理请求。
指令以名称开始,后面跟随一个或多个参数,最后以分号 ; 结束。
示例指令如 listen 80;。
(3)变量 (Variables):
Nginx支持预定义变量,例如 $host 和 $remote_addr,它们在处理请求时动态生成。
(4)上下文 (Contexts):
Nginx配置文件由多个上下文组成,如 http, server, 和 location。
每个上下文可以包含特定类型的指令。
(5)包含 (Includes):
Nginx允许包含其他配置文件,以使主配置文件更加简洁和易于管理。
使用 include 指令来包含其他配置文件,例如 include /etc/nginx/conf.d/*.conf;。
(6)注释 (Comments):
Nginx的配置文件支持使用 # 字符进行注释。

1、nginx变量简介

所有的 Nginx变量在 Nginx 配置文件中引用时都须带上 $ 前缀
在 Nginx 配置中,变量只能存放一种类型的值,而且也只存在一种类型,那就是字符串类型
所有的变量值都可以通过这种方式引用:$变量名

2、nginx 变量的定义和使用

nginx中的变量分为两种:自定义变量与内置预定义变量。

1、自定义变量

1、声明变量可以在sever,http,location等标签中使用set命令声明变量,语法如下

set $变量名 变量值
注意:
nginx 中的变量必须都以$开头
nginx 的配置文件中所有使用的变量都必须是声明过的,否则 nginx 会无法启动并打印相关异常日志

Nginx 变量的创建只能发生在 Nginx 配置加载的时候,或者说 Nginx 启动的时候。而赋值操作则只会发生在请求实际处理的时候。这意味着不创建而直接使用变量会导致启动失败。

2、内置预定义变量

内置预定义变量即无需声明就可以使用的变量,通常包括一个http请求或响应中一部分内容的值,以下为一些常用的内置预定义变量

nginx 监控

1、nginx基础监控

- 进程监控
- 端口监控
注意: 这两个是必须要加在zabbix监控,加触发器有问题及时告警

nginx 提供了 ngx_http_stub_status_module,这个模块提供了基本的监控功能,查看Nginx连接状态。通过HTTP请求来获取与Nginx服务器相关的实时状态信息,包括当前连接数、请求处理情况、响应时间等。

2、监控的指标

1、基本活跃指标

Accepts(接受)、Handled(已处理)、Requests(请求数)是一直在增加的计数器。Active(活跃)、Waiting(等待)、Reading(读)、Writing(写)随着请求量而增减。

2、服务器错误率

通过监控固定时间间隔内的错误代码(4XX代码表示客户端错误,5XX代码表示服务器端错误)。

3、请求处理时间

请求处理时间也可以被记录在 access log 中,通过分析 access log,统计请求的平均响应时间。 ----$request_time 变量

1、nginx Stub Status 监控模块安装
​
先使用命令查看是否已经安装这个模块:# -V会显示版本号和模块等信息、小写v仅显示版本信息
~]# nginx -V注意:是如果没有此模块,需要重新安装,编译命令如下:
./configure –with-http_stub_status_module
具体的使用方法是在执行 ./configure 时,指定 --with-http_stub_status_module,然后通过配置:~]# vim /etc/nginx/conf.d/status.conf 
server {listen 80;server_name localhost;location /nginx-status {stub_status     on;#access_log      on;# 可选参数,允许指定IP地址或IP段来限制访问# allow 127.0.0.1;# allow 192.168.0.0/24;# deny all;}
}
​
2、nginx 状态查看

配置完成后在浏览器中输入192.168.175.128/nginx-status 查看显示信息如下:

Active connections: 2    当前nginx处理请求的数目,即​活跃的连接数 2个
server accepts handled requests   #连接数 成功连接数(握手) 处理请求数9 9 29 
Reading: 0 Writing: 1 Waiting: 0 失败连接=连接数(accepts)-成功连接数(handled)(相等表示中间没有失败的),
Reading : nginx读取到客户端的Header信息数。请求头   -----速度快。 
Writing :nginx返回给客户端的Header信息数。响应头       
Waiting :开启keep-alive的情况下,即nginx已处理完正在等候下一次请求指令的驻留连接。
connection    #连接数,tcp连接                             
request       #http请求,GET/POST/DELETE/UPLOAD
长连接(驻留连接)
keepalive_timeout设置为0意味着禁用长连接(Keep-Alive)功能
长连接是指在一个TCP连接上可以发送多个HTTP请求,在所有的请求处理完成后,保持该
连接处于打开状态,以便后续请求复用。这样可以减少TCP连接的建立和关闭的开销,提高服务器的性能。默认情况下,keepalive_timeout的值是75s。当一个连接的空闲时间超过了keepalive_timeout
的值,Nginx会主动关闭这个连接。当将keepalive_timeout设置为0时,表示没有空闲时间限制,即不等待客户端主动关闭连接,
而立即关闭连接。这样做可以节省服务器的资源,但也会增加服务器与客户端建立连接的频率。
3、Stub Status 参数说明

基于脚本监控nginx的端口
[root@nginx-server ~]# vim check_port.sh
#!/usr/bin/bash
curl -I http://127.0.0.1 &> /dev/null
if [ $? -ne 0 ];thenecho "nginx 未运行,正在启动中..."sleep 1systemctl start nginxecho "正在检查nginx是否启动..."port=`netstat -lntp | grep nginx |awk '{print $4}' | awk -F':' '{print $NF}'`echo "nginx已经启动,端口为: $port"
fi

HTTPS 基本原理

HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一个新鲜协议,Google 很早就开始启用了,初衷是为了保证数据安全。 国内外的大型互联网公司很多也都已经启用了HTTPS,这也是未来互联网发展的趋势。

1、加密算法

1. 对称加密

加密和解密使用相同的密钥。这意味着发送方和接收方都需要共享同一个密钥来进行加密和解密操作。
对称加密算法的原理:
A要给B发送数据:A做一个对称密钥,使用密钥给文件加密,发送加密后的文件和钥匙,B拿钥匙解密

2. 非对称加密

公钥加密且可以自由共享,私钥解密且必须保密

A要给B发送数据
B做一对非对称的密钥,发送公钥给A,A拿公钥对数据进行加密,发送加密后的数据给B,B拿私钥解密

3. 哈希算法

一种数学函数,可以将任意长度的信息映射为固定长度的值,通常其长度要比信息小得多。

例如:MD5、SHA-1、SHA-2(如SHA-256) 等(推荐SHA-256安全性高)

md5sum:计算文件的MD5哈希值生成唯一的128位哈希值,用于校验文件的完整性和验证文件的一致性。

md5sum [文件路径]

4. 数字签名

数字签名是一种用于验证文件或文档的完整性和真实性的技术。它是通过使用非对称加密算法的公钥和私钥来实现的。

签名就是在信息的后面再加上一段内容(信息经过hash后的值),可以证明信息没有被修改过。
hash值一般都会加密后(也就是签名)再和信息一起发送,以保证这个hash值不被修改。
数字签名的过程如下:
1. 发送者使用私钥对数据进行哈希。哈希算法生成唯一的固定长度哈希值,唯一表示文件内容。
2. 发送者使用私钥对哈希值进行加密,生成数字签名。
3. 发送者将数据和数字签名一起发送给接收者。
4. 接收者使用发送者的公钥对数字签名进行解密,得到哈希值。
5. 接收者对接收的数据使用相同哈希算法进行哈希,生成新的哈希值。
6. 接收者比对解密生成的哈希值和自己计算的哈希值。如果一致,说明文件的内容没有被篡改过,数字签名有效。

2、HTTPS 协议介绍

  • HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器与Web服务器之间的应用层通信协议 。

  • HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer,超文本传输安全协议):HTTP+SSL/TLS,  HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。

如上图所示 HTTPS 相比 HTTP 多了一层 SSL/TLS

SSL/TLS

SSL(Secure Sockets Layer 安全套接层协议)TLS(Transport Layer Security,传输层安全协议)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层为数据通讯进行加密提供安全支持。

SSL协议提供的服务主要有:

 ssl:身份认证和数据加密。保证数据完整性
1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
2)加密数据以防止数据中途被窃取;
3)维护数据的完整性,确保数据在传输过程中不被改变。 

3、HTTPS 原理

1. HTTP 访问过程

如上图所示,HTTP请求过程中,客户端与服务器之间没有任何身份确认的过程,数据全部明文传输,“裸奔”在互联网上。这意味着在传输过程中,攻击者可以拦截和窃听数据,包括用户的敏感信息(如用户名、密码等)或其他数据。

可以看到,客户端发出的请求很容易被黑客截获,如果此时黑客冒充服务器,则其可返回任意信息给客户端,而不被客户端察觉。

2. HTTP 传输面临的风险

- 窃听风险:黑客可以获知通信内容。
- 篡改风险:黑客可以修改通信内容。
- 冒充风险:黑客可以冒充他人身份参与通信。

3. SSL证书

那有没有一种方式既可以安全的获取公钥,又能防止黑客冒充呢? 那就需要用到终极武器了:SSL 证书(申购)

证书:.crt, .pem
私钥:.key
证书请求文件:.csr

SSL 证书具体内容
(1)证书的发布机构CA
(2)证书的有效期
(3)公钥
(4)证书所有者
(5)签名 ----- 签名就可以理解为是钞票里面的一个防伪标签。
校验SSL证书过程

客户端在接受到服务端发来的SSL证书时,会对证书的真伪进行校验,以浏览器为例说明如下:

(1)首先浏览器读取证书中的证书所有者、有效期等信息进行一一校验
(2)浏览器开始查找操作系统中已内置的受信任的证书发布机构CA,与服务器发来的证书中的颁发者CA比对,用于校验证书是否为合法机构颁发
(3)如果找不到,浏览器就会报错,说明服务器发来的证书是不可信任的。
(4)如果找到,那么浏览器就会从操作系统中取出颁发者CA的公钥,然后对服务器发来的证书里面的签名进行解密
(5)浏览器使用相同的hash算法计算出服务器发来的证书的hash值,将这个计算的hash值与证书中签名做对比
(6)对比结果一致,则证明服务器发来的证书合法,没有被冒充
(7)此时浏览器就可以读取证书中的公钥,用于后续加密了
(8)client与web协商对称加密算法,client生成对称加密密钥并使用web公钥加密,发送给web服务器,web服务器使用web私钥解密 
(9)使用对称加密密钥传输数据,并校验数据的完整性

通过发送SSL证书的形式,既解决了公钥获取问题,又解决了黑客冒充问题,一箭双雕,HTTPS加密过程也就此形成

相比HTTP,HTTPS 传输更加安全的原因
(1) 所有信息都是加密传播,黑客无法窃听。
(2) 具有校验机制,一旦被篡改,通信双方会立刻发现。
(3) 配备身份证书,防止身份被冒充。

4. CA 机构

CA(Certificate Authority)证书颁发机构主要负责证书的颁发、管理以及归档和吊销。证书内包含了拥有证书者的姓名、地址、电子邮件帐号、公钥、证书有效期、发放证书的CA、CA的数字签名等信息。证书主要有三大功能:加密、签名、身份验证。

阿里云申请配置ssl证书---实战

1.准备一台阿里云服务器,我的机器在香港

2.准备一个域名

3.申请ssl证书

开始配置信息

到这需要等待大约10几分钟!然后刷新

先查看帮助文档

然后在下载

http配置为https

阿里云配置证书案例:

yum安装nginx  ----略
将证书上传到服务器中
1.首先在服务器创建存放证书的文件夹
~]# cd /etc/nginx/ && mkdir cert
2.将证书文件复制到服务器对应的文件夹中
~]# ls
2447549_www.testpm.cn_nginx.zip
~]# unzip 2447549_www.testpm.cn_nginx.zip
~]# cp 2447549_www.testpm.cn* /etc/nginx/cert/
~]# cd /etc/nginx/cert/
改名:
[root@nginx cert]# mv 2447549_www.testpm.cn.key www.testpm.cn.key 
[root@nginx cert]# mv 2447549_www.testpm.cn.pem www.testpm.cn.pem
3.证书配置如443端口、证书路径、私钥路径等相关内容
证书复制完成之后,可以对nginx配置文件进行更改,使用vim命令
[root@nginx ~]# cd /etc/nginx/conf.d/
[root@nginx conf.d]# vim /etc/nginx/conf.d/nginx_ssl.conf 
server {listen 443 ssl;  #指定https端口443server_name www.testpm.cn;access_log  /var/log/nginx/https_access.log  main;
​ssl_certificate   /etc/nginx/cert/www.testpm.cn.pem; #指定证书路径ssl_certificate_key  /etc/nginx/cert/www.testpm.cn.key; #指定私钥路径ssl_session_timeout 5m; #配置用于SSL会话的缓存ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #指定使用的协议ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; #密码指定为OpenSSL支持的格式ssl_prefer_server_ciphers on;  #设置协商加密算法。
​location / {root  /usr/share/nginx/html;index index.html index.htm;}
}

80转443端口

server {listen 80;server_name www.testpm.cn;location / {#return 301 http://$host$request_url;rewrite .* https://www.testpm.cn permanent;}
}

80/443均可访问

在一个 server 里面同时监听 80 和 443 两个端口

server {listen 80;listen 443 ssl;server_name  www.testpm.cn;    # IP或域名ssl_certificate  /etc/nginx/cert/www.testpm.cn.pem;         # 证书路径ssl_certificate_key /etc/nginx/cert/www.testpm.cn.key;      # 私钥路径ssl_session_timeout 5m;ssl_protocols SSLv2 SSLv3 TLSv1;ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;ssl_prefer_server_ciphers on;client_max_body_size 50M;client_body_buffer_size 2M;location / {root  /usr/share/nginx/html;index index.html index.htm;try_files $uri $uri/ @router;}
}

需要给域名做一个解析,香港的服务器添加一个A记录即可

解析完成之后大约需要等待3-5分钟

测试访问

访问成功!

相关文章:

Nginx进阶-常见配置(三)

nginx 变量 Nginx的配置文件使用的语法的就是一门微型的编程语言。既然是编程语言,一般也就少不了“变量”这种东西。 Nginx配置文件使用的语法主要包括以下几个方面: (1)配置块 (Block Directives): Nginx配置文件由多个嵌套的…...

开源协作式书签管理器推荐

不知道有没有人和我一样,不怎么爱用app,反而喜欢保留用古老的浏览器浏览新闻和知识的习惯。那么归档网页和书签一定是你非常头疼的事情。 推荐一款开源软件:Linkwarden ,这是一款独立的开源协作式书签管理器。 Linkwarden 允许用户收集、组…...

【线性代数】【二】2.2极大线性无关组与向量空间的基

文章目录 前言一、极大线性无关组二、向量空间的基三、向量维数与向量空间维数总结 前言 上一篇中我们介绍了向量空间的概念,并且学习了对任意给出的一组向量,如果构造一个向量空间。本文将更加细致的去分析张成一个向量空间,具有哪些性质。…...

STM32常见的下载方式有三种

经过对比,推荐使用 SWD下载,只需要一个仿真器(如jLINK、ST LINK、 CMSIS DAP 等),比较方便。 不推荐使用串口下载(速度慢、无法仿真和调试)和 JTAG 下载(占用 IO 多)。...

RK3568-npu模型转换推理

1. rknn-toolkit2-1.4.0进行模型转换和模型推理 1.1 虚拟机转换和模拟器推理(要求ubuntu18+python3.6) sudo apt-get install python3 python3-dev python3-pip sudo apt-get install libxslt1-dev zlib1g-dev libglib2.0 libsm6 libgl1-mesa-glx libprotobuf-dev gcc cd ~…...

《C语言程序设计 第4版》笔记和代码 第十二章 数据体和数据结构基础

12.1从基本数据类型到抽象数据类型 1 所有的程序设计语言都不能将所有复杂数据对象作为其基本数据类型,因此需要允许用户自定义数据类型,在C语言中,就存在构造数据类型(复合数据类型)。 2 结构体是构造数据类型的一种…...

学习记录——day26 进程间的通信 无名管道 无名管道 信号通信 特殊的信号处理

目录 一、进程间通信引入 二、无名管道 1、无名管道相关概念 2、无名管道的API接口函数 pipe(int pipefd[2]); 3、管道通信的特点 4、管道的读写特点 三、有名管道 1、有名管道:有名字的管道文件,其他进程可以调用 2、可以用于亲缘进程间的通信&…...

WHAT - xmlhttprequest vs fetch vs wretch

目录 前言1. XMLHttpRequest (XHR)2. fetch3. wretch总结 fetch1. 简洁性和易用性2. 错误处理3. 默认行为和功能扩展4. 请求和响应的处理5. 跨域请求和 CORS6. 现代 Web 开发需求 fetch vs xhr 代码示例使用 XMLHttpRequest使用 fetch代码对比 前言 根据标题我们可以知道今天主…...

吴恩达老师机器学习作业-ex7(聚类)

导入库,读取数据,查看数据类型等进行分析,可视化数据 import matplotlib.pyplot as plt import numpy as np import scipy.io as sio#读取数据 path "./ex7data2.mat" data sio.loadmat(path) # print(type(data)) # print(data…...

lombok 驼峰命名缺陷,导致后台获取参数为null的解决办法

1.问题: 下面是我定义一个请求类的属性,采用Lombok注解,自动构建get和set方法。 Schema(description "父组织编码", requiredMode Schema.RequiredMode.REQUIRED) private String pOrgCode; 遇到这种命名,你会发现在…...

【dockerpython】亲测有效!适合新手!docker创建conda镜像+容器使用(挂载、端口映射、gpu使用)+云镜像仓库教程

文章目录 docker基本概念简介配置镜像加速源创建conda镜像1. 写 Dockerfile文件2. 创建镜像3. 创建容器并测试 容器的使用1. wsl挂载2. 端口映射3. 补充-gpu 云镜像仓库使用1. 登录2. 将本地镜像上传至云镜像仓库3. 从云镜像仓库下载镜像到本地 docker基本概念简介 简单来讲&a…...

矩阵,求矩阵秩、逆矩阵

求矩阵秩的方法: 高斯消元法:通过行变换将矩阵化为行阶梯形矩阵,然后数非零行的数量。LU分解:通过分解矩阵成上下三角矩阵,计算非零对角元素的数量。SVD分解:通过奇异值分解,计算非零奇异值的数…...

指针和const

const int* ptr,int* const ptr,const int* const ptr 这三种指针定义有什么区别?用法有什么不同? 指向的地址是否可变指向的地址上存储的内容是否可变const属性const int* ptr可改变不可改*ptr具有const属性int* const pts不可改…...

基于C#调用文心一言大模型制作桌面软件(可改装接口)

目录 开发前的准备账号注册应用创建应用接入 开始开发创建项目设计界面使用 AK,SK 生成鉴权签名窗体代码 百度智能云千帆大模型平台什么是百度智能云千帆大模型平台模型更新记录 开发前的准备 账号注册 访问百度智能云平台,通过百度账号登录或手机号验证…...

VScode插件安装

一、常用插件 Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code vscode 中文插件 Auto Rename Tag 闭合标签 Path Intellisense 一个非常实用的工具,它提供了文件路径的自动补全功能,可以极大地提高开发效率。路径自动补全、…...

《Milvus Cloud向量数据库指南》——高可用黄金标准:深入解析与业务策略考量

高可用黄金标准:深入解析与业务策略考量 在信息技术飞速发展的今天,高可用性(High Availability, HA)已成为衡量企业IT系统性能与稳定性的关键指标之一。它不仅仅关乎技术层面的优化与配置,更是企业保障业务连续性、提升客户体验、增强市场竞争力的重要基石。尽管高可用性…...

sqli-labs注入练习1,2关

sqli-labs第一关 判断是否存在sql注入 可见,根据输入数字的不同,结果也不同 判断sql语句是否是拼接,且是字符型还是数字型 由上可见,这关指定是字符型且存在sql注入漏洞 使用联合注入 第一步:首先知道表格有几列&…...

B站宋红康JAVA基础视频教程个人笔记chapter04

文章目录 1.IDEA安装好后的一些设置和学习1.1关于IDEA内部jdk版本的设置1.2 一些样式以及快捷键的常用设置(强烈推荐) 2.工程与模块管理3.如何彻底的卸载IDEA 1.IDEA安装好后的一些设置和学习 1.1关于IDEA内部jdk版本的设置 1.File—>Project Struc…...

关于java枚举为什么可以拿来当单例实现这件事看看ikun怎么说

为什么枚举可以保证单例 枚举可以保证单例的原因主要可以归结为以下几个方面: 1. 枚举的实例化过程 线程安全:枚举的实例化过程是由JVM控制的,在类加载时就完成了枚举常量的初始化。由于这个初始化过程是线程安全的(JVM在加载枚…...

Hugging Face下载模型

1、安装 huggingface-cli pip install -U huggingface_hub 2、设置环境变量(如果你打算使用 HF_ENDPOINT 环境变量来指定下载镜像站点): export HF_ENDPOINThttps://hf-mirror.com 3、使用 huggingface-cli 下载模型: 使用下面的命令来下…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

企业如何增强终端安全?

在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...