Nginx 基础使用(2025)
一、Nginx目录结构
[root@localhost ~]# tree /usr/local/nginx
/usr/local/nginx
├── client_body_temp # POST 大文件暂存目录
├── conf # Nginx所有配置文件的目录
│ ├── fastcgi.conf # fastcgi相关参数的配置文件
│ ├── fastcgi.conf.default # fastcgi.conf的原始备份文件
│ ├── fastcgi_params # fastcgi的参数文件
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types # 媒体类型
│ ├── mime.types.default
│ ├── nginx.conf #这是Nginx默认的主配置文件,日常使用和修改的文件
│ ├── nginx.conf.default
│ ├── scgi_params # scgi相关参数文件
│ ├── scgi_params.default
│ ├── uwsgi_params # uwsgi相关参数文件
│ ├── uwsgi_params.default
│ └── win-utf
├── fastcgi_temp # fastcgi临时数据目录
├── html # Nginx默认站点目录
│ ├── 50x.html # 错误页面优雅替代显示文件,例如出现502错误时会调用此页面
│ └── index.html # 默认的首页文件
├── logs # Nginx日志目录
│ ├── access.log # 访问日志文件
│ ├── error.log # 错误日志文件
│ └── nginx.pid # pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
├── proxy_temp # 临时目录
├── sbin # Nginx 可执行文件目录
│ └── nginx # Nginx 二进制可执行程序
├── scgi_temp # 临时目录
└── uwsgi_temp # 临时目录
主要的目录包含conf,html,logs和sbin:
① conf目录用来存放配置文件相关
② html目录用来存放静态文件的默认目录 ,如前端包、html、css等
③ logs目录用来存放日志信息
④ sbin目录用于存放可执行文件,可以用 ./nginx启动nginx:
二、基本运行原理
Nginx 是一种高性能的 HTTP 和反向代理服务器,它采用了经典的「Master-Worker」模型来运行。以下是 Nginx 基本运行原理的介绍:
-
启动过程:
-
当 Nginx 启动时,首先会创建一个
Master
进程。 -
Master
进程负责读取和验证配置文件(如/conf/nginx.conf
),确保配置的正确性。
-
-
配置文件:
-
配置文件中定义了 Nginx 的各种设置,包括监听的端口、处理请求的方式等。
-
-
Worker 进程:
-
Master
进程会根据配置文件中的设置,启动多个Worker
进程。 -
这些
Worker
进程是实际处理客户端请求的进程。 -
每个
Worker
进程独立运行,平等地竞争来自客户端的请求。
-
-
请求处理:
-
客户端通过浏览器或其他方式向 Nginx 发送请求(如访问
http://192.168.44.101/index.html
)。 -
请求首先到达
Master
进程,然后由Master
进程分发给一个Worker
进程。 -
Worker
进程解析请求,并根据请求内容读取相应的文件(如/html/index.html
)。 -
Worker
进程处理完请求后,将响应返回给客户端。
-
-
进程管理:
-
Master
进程负责管理Worker
进程,包括接收外界信号、向Worker
进程发送信号、监控Worker
进程的运行状态等。 -
如果某个
Worker
进程异常退出,Master
进程会自动重新启动一个新的Worker
进程,以确保服务的连续性。
-
-
性能优化:
-
通常,
Worker
进程的数量会设置为与机器的 CPU 核心数一致,以充分利用多核 CPU 的性能。 -
Nginx 的事件处理模型(如 epoll)使得
Worker
进程能够高效地处理大量并发连接。
-
通过这种「Master-Worker」模型,Nginx 能够实现高性能、高并发的 Web 服务处理。
三、Nginx配置与应用场景
3.1 nginx.conf
刚安装好的nginx.conf如下:
#user nobody;
worker_processes 1;#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 65;#gzip on;server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html;index index.html index.htm;}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {# proxy_pass http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {# deny all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {# listen 8000;# listen somename:8080;# server_name somename alias another.alias;# location / {# root html;# index index.html index.htm;# }#}# HTTPS server##server {# listen 443 ssl;# server_name localhost;# ssl_certificate cert.pem;# ssl_certificate_key cert.key;# ssl_session_cache shared:SSL:1m;# ssl_session_timeout 5m;# ssl_ciphers HIGH:!aNULL:!MD5;# ssl_prefer_server_ciphers on;# location / {# root html;# index index.html index.htm;# }#}}
去掉注释的简单版如下:
worker_processes 1; #允许进程数量,建议设置为cpu核心数或者auto自动检测,
#注意Windows服务器上虽然可以启动多个processes,但是实际只会用其中一个events {#单个进程最大连接数(最大连接数=连接数*进程数)#根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。worker_connections 1024;
}http {#文件扩展名与文件类型映射表(是conf目录下的一个文件)include mime.types;#默认文件类型,如果mime.types预先定义的类型没匹配上,默认使用二进制流的方式传输default_type application/octet-stream;#sendfile指令指定nginx是否调用sendfile 函数(zero copy 方式)来输出文件,
#对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,
#可设置为off,以平衡磁盘与网络IO处理速度。sendfile on;#长连接超时时间,单位是秒keepalive_timeout 65;#虚拟主机的配置server {#监听端口listen 80;#域名,可以有多个,用空格隔开server_name localhost;#配置根目录以及默认页面location / {root html;index index.html index.htm;}#出错页面配置error_page 500 502 503 504 /50x.html;#/50x.html文件所在位置location = /50x.html {root html;}}}
配置介绍:
Worker
进程 )。 -
sendfile
可以实现数据的零拷贝(zero-copy),即数据直接从文件系统传输到网络缓冲区,而不需要经过用户空间的拷贝,从而提高传输效率。

开启sendfile:
⑥keepalive_timeout 65;
keepalive_timeout
是 Nginx 配置中的一个指令,它用于设置保持连接打开状态的时间,也就是长连接的超时时间。
-
time
:可以是指定的秒数,也可以是小数点表示的秒数(例如,65、65.5)。
3.2 server_name匹配规则
3.2.1完整匹配
可以配置多个域名,例如:
server_name test81.xzj520520.cn test82.xzj520520.cn;
3.2.2通配符匹配
使用通配符的方式如下
①通配符开始匹配:
server_name *.xzj520520.cn;
②通配符结束匹配:
server_name www.xzj520520.*;
需要注意的是精确匹配的优先级大于通配符匹配和正则匹配。
3.2.3正则匹配
采用正则的匹配方式如下:
server_name ~^[0-9]+\.mmban\.com$;
正则匹配格式,必须以~开头,比如:server_name ~^www\d+\.example\.net$;。如果开头没有~,则nginx认为是精确匹配。在逻辑上,需要添加^和$锚定符号。注意,正则匹配格式中.为正则元字符,如果需要匹配.,则需要反斜线转义。如果正则匹配中含有{和}则需要双引号引用起来,避免nginx报错,如果没有加双引号,则nginx会报如下错误:directive "server_name" is not terminated by ";" in ...。
3.2.4 匹配顺序
-
精确匹配:
Nginx 首先查找是否有完全匹配的域名。例如,如果配置了server_name example.com;
,则该服务器块会匹配直接请求example.com
的请求。 -
最长通配符匹配(以 * 开头):
如果没有精确匹配,Nginx 会查找以星号(*)开头的最长通配符匹配。例如,server_name *.example.com;
会匹配任何以.example.com
结尾的域名,如sub.example.com
。 -
最长通配符匹配(以 * 结尾):
如果没有找到以 * 开头的通配符匹配,Nginx 会查找以星号(*)结尾的最长通配符匹配。例如,server_name example.*;
会匹配任何以example.
开头的域名,如example.sub
。 -
正则表达式匹配:
如果上述匹配都未找到,Nginx 会查找正则表达式匹配。正则表达式必须以~
开头(区分大小写)或~*
开头(不区分大小写)。例如,server_name ~^www\.example\.com$;
会匹配www.example.com
。 -
特殊匹配:
server_name "";
用于匹配 Host 请求头不存在的情况。 -
默认服务器块:
如果以上所有匹配都未找到,Nginx 会使用没有server_name
指令的服务器块(如果有的话)作为默认服务器块来处理请求。
3.3反向代理
在 Nginx 中配置反向代理时,proxy_pass
指令用于指定客户端请求将被转发到的目标服务器地址。
-
假设我们要将域名
example.com
的请求代理到后端服务器192.168.1.100
的8080
端口。
server {listen 80; // 监听 80 端口server_name example.com; // 指定域名location / {proxy_pass http://192.168.1.100:8080; // 将请求转发到后端服务器proxy_set_header Host $host; // 传递原始请求的 Host 头部proxy_set_header X-Real-IP $remote_addr; // 传递客户端的真实 IP 地址proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; // 添加 X - Forwarded - For 头部,用于记录请求经过的代理服务器proxy_set_header X-Forwarded-Proto $scheme; // 传递原始请求的协议(如 HTTP 或 HTTPS)}
}
-
在这个配置中,
proxy_pass
指令是核心,它指定了后端服务器的地址和端口。proxy_set_header
指令用于设置转发请求时添加的头部信息,这对于后端服务器正确处理请求很重要。例如,X - Real - IP
头部可以让后端服务器知道客户端的真实 IP 地址,而不是 Nginx 服务器的 IP 地址。
3.4负载均衡
3.4.1 如何配置负载均衡
可以通过upstream
模块定义一组后端服务器,然后在proxy_pass
中引用这个upstream来实现负载均衡。
upstream backend {server 192.168.1.100:8080;server 192.168.1.101:8080;server 192.168.1.102:8080;
}server {listen 80;server_name example.com;location / {proxy_pass http://backend; // 引用 upstream 中定义的服务器组proxy_set_header Host $host;proxy_set_header X - Real - IP $remote_addr;proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;proxy_set_header X - Forwarded - Proto $scheme;}
}
默认情况下,Nginx 使用轮询的方式将请求分发到upstream
中的服务器。也可以通过least_conn
(最少连接)或ip_hash
(基于 IP 哈希)等指令来指定其他负载均衡策略
3.4.2 负载均衡策略
1. 轮询(默认策略)
-
工作原理:默认情况下,Nginx 使用轮询策略,按照顺序依次将请求分配给后端服务器。
-
适用场景:适用于后端服务器性能相近且请求量相对均匀的场景。
-
配置示例:
upstream backend {server 127.0.0.1:8050;server 127.0.0.1:8060;server 127.0.0.1:8070; }
2. 权重(Weight)
-
工作原理:通过
weight
指令为每台服务器分配权重。权重越高,分配到的请求越多。权重默认为1。 -
适用场景:适用于后端服务器性能不均的情况,高性能服务器可以分配更高的权重。
-
配置示例:
upstream backend {server 127.0.0.1:8050 weight=10; # 高性能服务器server 127.0.0.1:8060 weight=1; # 低性能服务器server 127.0.0.1:8070 weight=5; # 中等性能服务器
}
3. 禁用服务器(Down)
-
工作原理:使用
down
指令可以将某台服务器标记为暂时不参与负载均衡。 -
适用场景:当某台服务器需要维护或出现故障时,可以将其标记为
down
。 -
配置示例:
upstream backend {server 127.0.0.1:8050;server 127.0.0.1:8060 down; # 暂时禁用这台服务器server 127.0.0.1:8070; }
4. 备用服务器(Backup)
-
工作原理:使用
backup
指令可以将某台服务器标记为备用服务器。只有当其他所有非备用服务器都不可用(如宕机或繁忙)时,才会将请求转发到备用服务器。 -
适用场景:用于提高系统的可用性,确保在部分服务器故障时仍然可以提供服务。
-
配置示例:
upstream backend {server 127.0.0.1:8050;server 127.0.0.1:8060;server 127.0.0.1:8070 backup; # 备用服务器
}
5. IP 哈希(IP Hash)
-
工作原理:根据客户端的IP地址进行哈希计算,将请求分配到特定的服务器。同一个客户端的请求总是被分配到同一台服务器。
-
适用场景:适用于需要会话保持的应用场景,例如在线购物车系统。
-
配置示例:
upstream backend {ip_hash;server 127.0.0.1:8050;server 127.0.0.1:8060;
}
6. 最少连接(Least Conn)
-
工作原理:将新的请求分配给当前连接数最少的服务器。
-
适用场景:适用于请求量波动较大且服务器性能相近的场景。
-
配置示例:
upstream backend {least_conn;server 127.0.0.1:8050;server 127.0.0.1:8060;
}
7. URL 哈希(URL Hash)
-
工作原理:根据请求的URL进行哈希计算,将请求分配到特定的服务器。适用于静态资源的负载均衡。
-
适用场景:适用于静态资源的分配,例如图片、CSS 文件等。
-
配置示例:
upstream backend {hash $request_uri consistent; # 使用请求的 URI 进行哈希server 127.0.0.1:8050;server 127.0.0.1:8060;
}
8. 响应时间(Fair)
-
工作原理:根据后端服务器的响应时间来分配请求。响应时间越短的服务器,分配到的请求越多。
-
适用场景:适用于对响应时间敏感的应用场景。
-
配置示例:
upstream backend {fair;server 127.0.0.1:8050;server 127.0.0.1:8060;
}
3.4.3 综合配置示例
以下是一个综合了多种策略的配置示例:
upstream backend {ip_hash; # 保持会话least_conn; # 最少连接server 127.0.0.1:8050 weight=10;server 127.0.0.1:8060 weight=5;server 127.0.0.1:8070 weight=1 backup; # 备用服务器server 127.0.0.1:8080 down; # 禁用服务器
}server {listen 80;server_name example.com;location / {proxy_pass http://backend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}
3.4.3 总结
-
轮询:适用于服务器性能相近的场景。
-
权重:适用于服务器性能不均的场景。
-
最少连接:适用于请求量波动较大的场景。
-
IP 哈希:适用于需要会话保持的场景。
-
URL 哈希:适用于静态资源的负载均衡。
-
响应时间:适用于对响应时间敏感的场景。
-
备用服务器:用于提高系统的可用性。
-
禁用服务器:用于维护或故障处理。
根据实际需求选择合适的策略和配置,可以有效提升系统的性能和可用性。
相关文章:
Nginx 基础使用(2025)
一、Nginx目录结构 [rootlocalhost ~]# tree /usr/local/nginx /usr/local/nginx ├── client_body_temp # POST 大文件暂存目录 ├── conf # Nginx所有配置文件的目录 │ ├── fastcgi.conf # fastcgi相…...
Docker基础1
本篇文章我将从系统的知识体系讲解docker的由来和在linux中的安装下载 随后的文章会介绍下载镜像、启动新容器、登录新容器 如需转载,标记出处 docker的出现就是为了节省资本和服务器资源 当企业需要一个新的应用程序时,需要为它买台全新的服务器。这样…...
【奇点时刻】GPT4o新图像生成模型底层原理深度洞察报告
个人最近一直在关注openai的新图像生成特性,以下内容基于现阶段社区及研究者们对 GPT-4O 图像生成功能的公开测试、逆向分析与技术推测综合而成,OpenAI 并未正式发布完整的技术报告,因此本文为非官方推断总结。但从多方信息与技术背景出发&am…...
Java的Selenium的特殊元素操作与定位之模态框
Modal Dialogue Box,又叫做模式对话框,是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。如单击【确定】或【取消】按钮等将该对话框关闭。 alert(警告) //访问本地的HTML文件 chromeDr…...
回归预测 | Matlab实现NRBO-Transformer-LSTM多输入单输出回归预测
回归预测 | Matlab实现NRBO-Transformer-LSTM多输入单输出回归预测 目录 回归预测 | Matlab实现NRBO-Transformer-LSTM多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.【JCR一区级】Matlab实现NRBO-Transformer-LSTM多输入单输出回归预测…...
Python菜鸟教程(小程序)
目录 一.简易计算器 二.学生成绩分级 三.密码设置 四.作业选择 点赞收藏,评论支持 一.简易计算器 print(-------使用的运算符-------\n) print(1.加号) print(2.减号) print(3.乘号) print(4.除号) Aint(input(请输入第一个数: )) Bint(input(请输入第二个数: )) Fi…...
类的(多态性、虚函数)基础练习
练习1:(简单) #include <iostream> using namespace std; class Vehicle { public: virtual void run() const0; }; class Car: public Vehicle { public: void run() const { cout << "run a car. "<<…...
特殊的质数肋骨--dfs+isp
1.dfs全排列组数,an记得还原 2.如果范围确定且只比较质数,isp比线性筛快,主要这个范围太大了 https://www.luogu.com.cn/problem/P1218 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typed…...
智能体开发实战指南:提示词设计、开发框架与工作流详解
在大语言模型(LLM)驱动的智能体(Agent)快速发展的今天,构建一个实用、智能的Agent已不再遥不可及。无论你是开发法律助手、租房合同分析器,还是通用办公自动化助手,理解提示词工程(P…...
jetson orin nano学习(torch+OpenCV+yolov5+)
一:入门第一件事:跟着商家教程配置哈哈 指令:nvidia-smi -h 帮助命令 sudo jtop --查看nvidia的gpu状态 Tip:教程下载的pytorth,cuda,cudnn版本不一定是你项目符合的,要提前想好 1.2 安装虚拟环境包(要安…...
client-go如何监听自定义资源
如何使用 client-go 监听自定义资源 在 Kubernetes 中使用 client-go 监听自定义资源(Custom Resource,简称 CR)需要借助 Dynamic Client 或 Custom Informer,因为 client-go 的标准 Clientset 只支持内置资源(如 Pod…...
【51单片机】3-3【定时器/计数器/中断】超声波测距模块测距
1.硬件 51最小系统超声波测距模块 2.软件 #include "reg52.h"//距离小于10cm,D5亮,D6灭,反之相反现象sbit D5 P3^7;//根据原理图(电路图),设备变量led1指向P3组IO口的第7口 sbit D6 P3^6;//根据原理图&…...
C语言求3到100之间的素数
一、代码展示 二、运行结果 三、感悟思考 注意: 这个题思路他是一个试除法的一个思路 先进入一个for循环 遍历3到100之间的数字 第二个for循环则是 判断他不是素数 那么就直接退出 这里用break 是素数就打印出来 在第一个for循环内 第二个for循环外...
金仓数据库KCM认证考试介绍【2025年4月更新】
KCM(金仓认证大师)认证是金仓KES数据库的顶级认证,学员需通过前置KCA、KCP认证才能考KCM认证。 KCM培训考试一般1-2个月一次,KCM报名费原价为1.8万,当前优惠价格是1万(趋势是:费用越来越高&…...
leetcode每日一题:替换子串得到平衡字符串
引言 今天的每日一题原题是1863. 找出所有子集的异或总和再求和,比较水,直接对于集合中的每一个元素,都有取或者不取2种情况,直接递归进去求和即可。更换成前几天遇到的更有意思的一题来写这个每日一题。 题目 有一个只含有 Q,…...
2025年数字化社会与智能计算国际学术会议 (ICDSIC 2025)
基本信息 官网:www.icdsic.net 时间:2025年4月18-20日 地点:中国-深圳 主题 数字化社会 智能计算 数字化制造、经济 数字化政务、转型 数字化农业、水利、管理 数字化医疗、学习、社区 数字基建、通信、交通 数字…...
BN测试和训练时有什么不同, 在测试时怎么使用?
我们来彻底搞懂 Batch Normalization(BN) 在训练和测试阶段的区别,以及 测试时怎么用。 🧠 一句话总结: 训练时:使用 当前 mini-batch 的均值和方差 测试时:使用 整个训练集估计的“滑动平均均值…...
为什么卷积神经网络适用于图像和视频?
我们常听说“卷积神经网络(CNN)擅长图像和视频”,但其实 CNN 的核心本质远不止图像领域。我们先搞懂它为啥适合图像/视频。 🧠CNN 为什么适用于图像和视频? 主要因为 图像/视频具有空间局部性和结构平移性,…...
python爬虫:DrissionPage实战教程
如果本文章看不懂可以看看上一篇文章,加强自己的基础:爬虫自动化工具:DrissionPage-CSDN博客 案例解析: 前提:我们以ChromiumPage为主,写代码工具使用Pycharm(python环境3.9-3.10) …...
【Python爬虫高级技巧】BeautifulSoup高级教程:数据抓取、性能调优、反爬策略,全方位提升爬虫技能!
大家好,我是唐叔!上期我们聊了 BeautifulSoup的基础用法 ,今天带来进阶篇。我将分享爬虫老司机总结的BeautifulSoup高阶技巧,以及那些官方文档里不会告诉你的实战经验! 文章目录 一、BeautifulSoup性能优化技巧1. 解析…...
【动手学深度学习】卷积神经网络(CNN)入门
【动手学深度学习】卷积神经网络(CNN)入门 1,卷积神经网络简介2,卷积层2.1,互相关运算原理2.2,互相关运算实现2.3,实现卷积层 3,卷积层的简单应用:边缘检测3.1࿰…...
IPSG 功能协议
IPSG(IP Source Guard)即 IP 源保护,是一种基于 IP 地址和 MAC 地址绑定的安全功能,用于防止 IP 地址欺骗和非法的 IP 地址访问。以下是配置 IPSG 功能的一般步骤: 基于端口的 IPSG 配置 进入接口配置模式࿱…...
19.go日志包log
核心功能与接口 基础日志输出 Print 系列:支持 Print()、Println()、Printf(),输出日志不中断程序。 log.Print("常规日志") // 输出: 2025/03/18 14:47:13 常规日志 log.Printf("格式化: %s", "数据") Fatal…...
横扫SQL面试——TopN问题
横扫SQL面试 电商平台的"销量Top10商品"🛍️,内容社区的"热度Top5文章“”🔥,还是金融领域的"交易额Top3客户"💰——TopN问题无处不在! 无论是日常业务分析📊&#x…...
高级:微服务架构面试题全攻略
一、引言 在现代软件开发中,微服务架构被广泛应用于构建复杂、可扩展的应用程序。面试官通过相关问题,考察候选人对微服务架构的理解、拆分原则的掌握、服务治理的能力以及API网关的运用等。本文将深入剖析微服务架构相关的面试题,结合实际开…...
使用MATIO库读取Matlab数据文件中的cell结构数据
使用MATIO库读取Matlab数据文件中的cell结构数据 MATIO是一个用于读写Matlab数据文件(.mat)的C/C库。下面我将展示如何使用MATIO库来读取Matlab文件中的cell结构数据。 示例程序 #include <stdio.h> #include <stdlib.h> #include <matio.h>int main(int …...
pyTorch框架使用CNN进行手写数字识别
目录 1.导包 2.torchvision数据处理的方法 3.下载加载手写数字的训练数据集 4.下载加载手写数字的测试数据集 5. 将训练数据与测试数据 转换成dataloader 6.转成迭代器取数据 7.创建模型 8. 把model拷到GPU上面去 9. 定义损失函数 10. 定义优化器 11. 定义训练…...
新能源汽车电子电气架构设计中的功能安全
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…...
使用binance-connector库获取Binance全市场的币种价格,然后选择一个币种进行下单
一个完整的示例,展示如何使用 api 获取Binance全市场的币种价格,然后选择一个最便宜的币种进行下单操作 代码经过修改,亲测可用,目前只可用于现货,合约的待开发 获取市场价格:使用client.ticker_price()获取所有交易对的当前价格 账户检查:获取账户余额,确保有足够的资…...
HikariCP 源码核心设计解析与 ZKmall开源商城场景调优实践
HikariCP 作为 Spring Boot 默认数据库连接池,其高性能源于独特的无锁设计、轻量级数据结构和精细化生命周期管理。以下从源码解析与 ZKmall开源商城性能调优两个维度展开: 一、HikariCP 源码核心设计解析 无锁并发控制与 ConcurrentBag 容器 Concur…...
P1036 [NOIP 2002 普及组] 选数(DFS)
题目描述 已知 n 个整数 x1,x2,⋯,xn,以及 1 个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n4,k3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它…...
自然语言处理
自然语言处理基础 什么是自然语言处理:让计算机来理解人类所说的一种语言。自然语言处理实际就是让计算机理解人类说的话,然后像人一样进行交互,去进行对话,去生成自然语言。 自然语言处理的基本任务 词性标注:把给…...
LeetCode刷题常见的Java排序
1. 字符串排序(字母排序) 首先,你的代码实现了根据字母表顺序对字符串中的字母进行排序,忽略了大小写并且保留了非字母字符的位置。关键点是: 提取和排序字母:通过 Character.isLetter() 判断是否为字母,并利用 Character.toLowerCase() 来忽略大小写进行排序。保留非字…...
# 利用OpenCV和Dlib实现疲劳检测:守护安全与专注
利用OpenCV和Dlib实现疲劳检测:守护安全与专注 在当今快节奏的生活中,疲劳和注意力不集中是许多人面临的常见问题,尤其是在驾驶、学习等需要高度集中精力的场景中。疲劳不仅影响个人的健康和安全,还可能导致严重的事故。为了应对…...
python基础-16-处理csv文件和json数据
文章目录 【README】【16】处理csv文件和json数据【16.1】csv模块【16.1.1】reader对象【16.1.2】在for循环中, 从reader对象读取数据【16.1.3】writer对象【16.1.5】DictReader与DictWriter对象 【16.4】json模块【16.4.1】使用loads()函数读取json字符串并转为jso…...
Mysql 数据库编程技术01
一、数据库基础 1.1 认识数据库 为什么学习数据库 瞬时数据:比如内存中的数据,是不能永久保存的。持久化数据:比如持久化至数据库中或者文档中,能够长久保存。 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长…...
基于SSM的车辆管理系统的设计与实现(代码+数据库+LW)
摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。以前企业对于车辆信息的管理和控制,采用人工登记的方式保存相关数据,这种以人力为主的管理模式已然落后。本人结…...
BugKu Simple_SSTI_2
这个题很简单,主要是记录一下,做题的原理: 打开环境,提示我们用flag传参,然后我们需要判断是什么模板: 这里有一张图片,可以帮助我们轻松判断是什么模板类型:这个图片找不到出处了&…...
浙考!【触发器逻辑方程推导(电位运算)】
RS触发器是浙江高考通用技术一大考点。“对角线原则”、“置1置0”、“保持”、“不使用”、“记忆功能”…经常让考生云里雾里,非常反直觉。 这篇文章,我想以高中生的视角诠释一下触发器。 1、触发器逻辑方程推导(以或非门触发器为例&…...
二叉树的前序中序后序遍历
一、前序遍历 144. Binary Tree Preorder Traversal 递归代码实现: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* …...
es中节点类型有哪些
Elasticsearch 节点类型有哪些 在 Elasticsearch 中,节点类型(或角色)定义了每个节点在集群中的职责。不同版本的 Elasticsearch 对节点角色的定义和管理方式有所不同,尤其在 7.9.0 版本引入 node.roles 后,配置方式更…...
【学习笔记】深度学习环境部署相关
文章目录 [AI硬件科普] 内存/显存带宽,从 NVIDIA 到苹果 M4[工具使用] tmux 会话管理及会话持久性[A100 02] GPU 服务器压力测试,gpu burn,cpu burn,cuda samples[A100 01] A100 服务器开箱,超微平台,gpu、…...
游戏引擎学习第206天
回顾并为当天的工作定下目标 接着回顾了前一天的进展。之前我们做了一些调试功能,并且已经完成了一些基础的工作,但是还有一些功能需要继续完善。其中一个目标是能够展示实体数据,以便在开发游戏逻辑系统时,可以清晰地查看和检查…...
Rust所有权详解
文章目录 Rust所有权所有权规则作用域 内存和分配移动与克隆栈空间堆空间 关于函数的所有权机制作为参数作为返回值 引用与租借垂悬引用 Rust所有权 C/C中我们对于堆内存通常需要自己手动管理,手动申请和释放,即便有了智能指针,对于效率的影…...
贪心算法的使用条件
1. 算法原理 贪心算法是一种在每一步选择中都采取当前状态下最优(局部最优)的策略,从而希望最终得到全局最优解的算法。其核心思想是:“目光短浅” 地选择当前最优解,不回溯、不瞻前顾后。 示例:活动选择问…...
网络性能优化参数关系解读 | TCP Nagle / TCP_NODELAY / TCP_QUICKACK / TCP_CORK
注:本文为 “网路性能优化” 相关文章合辑。 未整理去重。 如有内容异常,请看原文。 TCP_NODELAY 详解 lenky0401 发表于 2012-08-25 16:40 在网络拥塞控制领域,Nagle 算法(Nagle algorithm)是一个非常著名的算法&…...
《打破SQL与AI框架对接壁垒,解锁融合新路径》
在当今科技飞速发展的浪潮中,SQL作为管理和处理关系型数据的经典语言,与代表前沿技术的人工智能框架之间的融合,正逐渐成为推动数据驱动型应用发展的重要力量。这种融合所带来的接口实现,不仅是技术上的突破,更是为众多…...
虚拟Ashx页面,在WEB.CONFIG中不添加handlers如何运行
https://localhost:44311/webapi.ashx 虚拟ASHX页面,在WEB.CONFIG中添加handlers,如何不添加节点,直接运行?把页面直接保存ASHX名称?现在是.VB 如果你不想通过在 web.config 里添加 handlers 节点来配置处理程序,而是直接让 .as…...
【ssrf漏洞waf绕过】
SSRF绕过方法 SSRF对于防御方式(waf)绕过方法 SSRF攻击内网的redis 题目一 基于java 的一个 WEBLOGIC 框架 首先我们要知道它内网有什么服务,我们正常给8888端口发送请求是能接受到的,那么我们把8888端口给关闭了,再次请求发现后有一个错误…...
BEVFormer v2(CVPR2023)
文章目录 AbstractIntroductionRelated WorksBEV 3D Object DetectorAuxiliary Loss in Camera 3D Object DetectionTwo-stage 3D Object Detector BEVFormer v2Overall ArchitecturePerspective SupervisionPerspective LossRavamped Temporal EncoderTwo-stage BEV DetectorD…...