Nginx源码安装与进阶负载均衡

news2024/11/24 13:40:40

目录

一  web服务介绍

二 Nginx介绍与源码安装

2.1 nginx源码安装

2.2 平滑升级和回滚

三 配置文件详解

3.1 配置文件说明

3.2 全局配置与http模块

3.3 root与alias

3.4 location的介绍

3.5 账户认证

四 高级配置

4.1 nginx 压缩功能

4.2 变量介绍

五 nginx反向代理功能

5.1 http反向代理

5.2 nginx四层负载

5.3 实现fastcgi

5.4 php高速缓存


一  web服务介绍

Web 服务,即网络服务,是一种基于互联网的软件系统,它通过标准的网络协议和数据格式,为不同的应用程序或设备之间提供交互和数据共享的能力。

一、HTTP 简介

 

HTTP 是一种用于分布式、协作式和超媒体信息系统的应用层协议。它是互联网上最常用的协议之一,用于在客户端(如浏览器)和服务器之间传输超文本数据,如网页、图像、视频等。

 
  1. 工作原理

    • 客户端向服务器发送一个 HTTP 请求,请求中包含了要访问的资源的 URL(Uniform Resource Locator,统一资源定位符)以及一些请求头信息,如用户代理、接受的内容类型等。
    • 服务器接收到请求后,根据请求的 URL 找到相应的资源,并生成一个 HTTP 响应返回给客户端。响应中包含了资源的内容以及一些响应头信息,如内容类型、响应状态码等。
    • 客户端接收到响应后,根据响应头信息解析资源的内容,并在浏览器中显示出来。
  2. 主要特点

    • 无状态:HTTP 是一种无状态协议,即服务器不会记住客户端的请求历史。这意味着每次客户端向服务器发送请求时,都需要包含完整的请求信息,服务器无法根据之前的请求来推断当前请求的上下文。
    • 支持多种请求方法:HTTP 支持多种请求方法,如 GET、POST、PUT、DELETE 等。不同的请求方法用于不同的目的,如 GET 用于获取资源,POST 用于提交数据等。
    • 可扩展性:HTTP 是一种可扩展的协议,可以通过添加新的请求头和响应头来支持新的功能。例如,通过添加 Accept-Ranges 请求头和 Content-Range 响应头,可以实现断点续传功能。
 

二、Nginx 简介

 

Nginx 是一款高性能的 Web 服务器、反向代理服务器和负载均衡器。它以其高并发处理能力、低内存消耗和稳定性而闻名。

 
  1. 主要功能

    • Web 服务器:Nginx 可以作为一个独立的 Web 服务器,直接处理客户端的 HTTP 请求,并返回相应的资源。它支持静态文件服务、动态内容生成(如 PHP、Python 等)以及反向代理等功能。
    • 反向代理:Nginx 可以作为反向代理服务器,将客户端的请求转发到后端的服务器上,并将后端服务器的响应返回给客户端。反向代理可以提高系统的安全性、性能和可扩展性。
    • 负载均衡:Nginx 可以作为负载均衡器,将客户端的请求分发到多个后端服务器上,以实现负载均衡和高可用性。负载均衡可以提高系统的吞吐量和可靠性。
  2. 工作原理

    • 当客户端向 Nginx 发送一个 HTTP 请求时,Nginx 首先根据配置文件中的规则,确定请求应该被转发到哪个后端服务器上。
    • 如果请求是静态文件请求,Nginx 可以直接从本地文件系统中读取文件,并返回给客户端。如果请求是动态内容请求,Nginx 将请求转发到后端的应用服务器上,应用服务器处理请求并生成响应,Nginx 将响应返回给客户端。
    • 在反向代理和负载均衡的情况下,Nginx 可以根据配置文件中的策略,选择一个合适的后端服务器,并将请求转发到该服务器上。后端服务器处理请求并生成响应,Nginx 将响应返回给客户端。

二 Nginx介绍与源码安装

Nginx(Engine X)是一款高性能的开源 Web 服务器、反向代理服务器和负载均衡器。它以其出色的性能、稳定性和低资源消耗而备受赞誉,在互联网领域得到了广泛的应用。

 

一、主要特点

 
  1. 高性能

    • Nginx 采用事件驱动的异步非阻塞架构,能够高效地处理大量并发连接。与传统的多线程或多进程服务器相比,它在高并发场景下表现出更低的内存占用和更高的吞吐量。
    • 例如,在处理静态文件请求时,Nginx 可以快速地从磁盘读取文件并将其发送给客户端,而不会因为大量并发请求而导致性能下降。
  2. 稳定性

    • Nginx 具有高度的稳定性,能够在长时间运行中保持可靠的服务。它经过了广泛的测试和实际应用的验证,能够应对各种复杂的网络环境和负载情况。
    • 许多大型网站和互联网服务提供商都选择 Nginx 作为其核心的 Web 服务器或负载均衡器,以确保服务的高可用性和稳定性。
  3. 低资源消耗

    • Nginx 对系统资源的消耗非常低,能够在资源有限的环境下高效运行。它可以在普通的服务器硬件上处理大量的并发连接,而不会对服务器的性能产生明显的影响。
    • 这使得 Nginx 特别适合于云计算、容器化等场景,能够在资源受限的环境中为应用提供高性能的服务。
  4. 反向代理和负载均衡

    • Nginx 可以作为反向代理服务器,将客户端的请求转发到后端的应用服务器上。它可以隐藏后端服务器的真实 IP 地址,提高系统的安全性。
    • 同时,Nginx 还可以作为负载均衡器,将客户端的请求分发到多个后端服务器上,以实现负载均衡和高可用性。它支持多种负载均衡算法,如轮询、加权轮询、IP 哈希等,可以根据实际需求进行灵活配置。
  5. 丰富的功能模块

    • Nginx 拥有丰富的功能模块,可以满足不同的应用需求。例如,它支持 SSL/TLS 加密、HTTP/2 协议、动态模块加载、缓存、压缩等功能。
    • 这些功能模块可以通过简单的配置进行启用或禁用,使得 Nginx 能够适应各种不同的应用场景。

2.1 nginx源码安装

补充:./configure 后选项介绍

--prefix=/usr/local/nginx \  指定安装路径
--user=nginx \ # 指定 nginx 运行用户
--group=nginx \ # 指定 nginx 运行组
--with-http_ssl_module \ # 支持 https://
--with-http_v2_module \ # 支持 http 版本 2
--with-http_realip_module \ # 支持 ip 透传
--with-http_stub_status_module \ # 支持状态页面
--with-http_gzip_static_module \ # 支持压缩
--with-pcre \ # 支持正则
--with-stream \ # 支持 tcp 反向代理
--with-stream_ssl_module \ # 支持 tcp ssl 加密
--with-stream_realip_module # 支持 tcp 的透传 ip
 --add-module=/root/echo-nginx-module-0.63

2.1.1 将nginx包传入并解压

2.1.2 解压之后的目录中,用configure检测模块,并且检测需要安装的软件包,然后创建用户,并指定目录

创建用户:

useradd -s /sbin/nologin -M nginx

2.1.3下载依赖包,并且重新检测成功后,输入make命令

yum install gcc pcre-devel zlib-devel openssl-devel -y

2.1.4 然后make install

2.1.5 运行并产看他的进程

2.1.6 配置环境变量

2.1.7 然后停止。准备做平滑升级和回滚

2.2 平滑升级和回滚

2.2.1 解压高版本nginx

2.2.2 配置26

2.2.3 然后make制作

此时还是nginx24的进程

2.2.4 备份老的,在把新版本复制过去

2.2.5 user2介绍

#USR2 平滑升级可执行程序 , 将存储有旧版本主进程 PID 的文件重命名为 nginx.pid.oldbin ,并启动新的
nginx
# 此时两个 master 的进程都在运行 , 只是旧的 master 不在监听 , 由新的 master 监听 80
# 此时 Nginx 开启一个新的 master 进程,这个 master 进程会生成新的 worker 进程,这就是升级后的 Nginx
程,此时老的进程不会自动退出,但是当接收到新的请求不作处理而是交给新的进程处理。
2.2.6 回收旧版本
# 回收旧版本
[root@Nginx sbin]# kill -WINCH 10576
新版本生效
2.2.7 回滚
释放旧的
2.2.8  拉起旧的
删掉其他

三 配置文件详解

3.1 配置文件说明

主配置文件:nginx.conf

子配置文件:include conf.d/*.conf

nginx配置文件格式说明

配置文件由指令与指令块构成
每条指令以 ; 分号结尾,指令与值之间以空格符号分隔
可以将多条指令放在同一行 , 用分号分隔即可 , 但可读性差 , 不推荐
指令块以 { } 大括号将多条指令组织在一起 , 且可以嵌套指令块
include 语句允许组合多个配置文件以提升可维护性
使用 # 符号添加注释,提高可读性
使用 $ 符号使用变量
部分指令的参数支持正则表达式
nginx 主配置文件的配置指令方式
directive value [value2 ...];
注意
(1) 指令必须以分号结尾
(2) 支持使用配置变量
内建变量:由 Nginx 模块引入,可直接引用
自定义变量:由用户使用 set 命令定义 , 格式 : set variable_name value;
引用变量: $variable_name
主配置结构
main block :主配置段,即全局配置段,对 http,mail 都有效
# 事件驱动相关的配置
event {
...
}
#http/https 协议相关配置段
http { ...
}
# 默认配置文件不包括下面两个块
#mail 协议相关配置段
mail {
...
}
#stream 服务器相关配置段
stream {
...
}
文件格式说明
# 全局配置端,对全局生效,主要设置 nginx 的启动用户 / 组,启动的工作进程数量,工作模式, Nginx PID 路 径,日志路径等。
worker_processes 1; # 启动工作进程数数量
worker_connections 1024; # 设置单个 nginx 工作进程可以接受的最大并发
#http 块是 Nginx 服务器配置中的重要部分,缓存、代理和日志格 式定义等绝大多数功能和第三方模块
http 块可 以包含多个server 块,而一个 server 块中又可以包含多个 location
keepalive_timeout 65; # 长连接超时时间,单位是秒
listen 80; # 配置 server 监听的端口
# 和邮件相关的配置
#mail {
# ...
# } mail 协议相关配置段
#tcp 代理配置, 1.9 版本以上支持
#stream {
# ...
# } stream 服务器相关配置段
# 导入其他路径的配置文件
#include /apps/nginx/conf.d/*.conf
}

3.2 全局配置与http模块

全局配置

Main 全局配置段常见的配置指令分类
正常运行必备的配置
优化性能相关的配置
用于调试及定位问题相关的配置
事件驱动相关的配置
全局配置说明
user nginx nginx; # 启动 Nginx 工作进程的用户和组
worker_processes [number | auto]; # 启动 Nginx 工作进程的数量 , 一般设为和 CPU 核心数相同
worker_cpu_affinity 00000001 00000010 00000100 00001000 | auto ;
# Nginx 工作进程绑定到指定的 CPU 核心,默认 Nginx 是不进行进程绑定的,绑定并不是意味着当前 nginx
程独占以一核心 CPU ,但是可以保证此进程不运行在其他核心上,这就极大减少了 nginx 的工作进程在不同的
cpu 核心上的来回跳转,减少了 CPU 对进程的资源分配与回收以及内存管理等,因此可以有效的提升 nginx 服务
器的性能。
CPU MASK: 00000001 0 CPU
00000010 1 CPU
10000000 7 CPU
# 示例
worker_cpu_affinity 0001 0010 0100 1000; 0 --- 3 CPU
worker_cpu_affinity 0101 1010;
#pid 文件保存路径
pid /usr/local/nginx/logs/nginx.pid;
worker_priority 0; # 工作进程优先级, -20~20(19)
worker_rlimit_nofile 65536; # 所有 worker 进程能打开的文件数量上限 ,
# 包括 :Nginx 的所有连接(例如与代理服务器的连接等)
# 而不仅仅是与客户端的连接
# 另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件
数的限制
# 最好与 ulimit -n 或者 limits.conf 的值保持一致
worker_connections 65535; # 设置单个工作进程的最大并发连接数
use epoll; # 使用 epoll 事件驱动,

http配置块

# 在响应报文中将指定的文件扩展名映射至 MIME 对应的类型
include /etc/nginx/mime.types;
default_type application/octet-stream; # mime.types 中的类型外 #指定其它文件的默认 MIME 类型,浏览 器一般会提示下载
types {
text/html html;
image/gif gif;
image/jpeg jpg;
}
基于不同的 IP 、不同的端口以及不用得域名实现不同的虚拟主机,依赖于核心模块
ngx_http_core_module 实现。

3.3 root与alias

写一个子配置文件,*.conf记得加引号

root举例

alias :定义路径别名,会把访问的路径重新定义到其指定的路径 , 文档映射的另一种机制 ; 仅能用于
location 上下文 , 此指令使用较少   
alias : 格式保持一致

补充:

root # 给定的路径对应于 location 中的 /uri 左侧的 /
alias # 给定的路径对应于 location 中的 /uri 的完整路径

3.4 location的介绍

在一个 server location 配置段可存在多个,用于实现从 uri 到文件系统的路径映射;
ngnix 会根据用户请求的 URI 来检查定义的所有 location ,按一定的优先级找出一个最佳匹配,
而后应用其配置在没有使用正则表达式的时候, nginx 会先在 server 中的多个 location 选取匹配度最高的一个uri uri是用户请求的字符串,即域名后面的 web 文件路径
然后使用该 location 模块中的正则 url 和字符串,如果匹配成功就结束搜索,并使用此 location 处理此请求。

3.5 账户认证

ngx_http_auth_basic_module 模块提供此功能
在配置文件写入
测试

四 高级配置

4.1 nginx 压缩功能

Nginx 支持对指定类型的文件进行压缩然后再传输给客户端,而且压缩还可以设置压缩比例,压缩后的文
件大小将比源文件显著变小,样有助于降低出口带宽的利用率,降低企业的 IT 支出,不过会占用相
应的 CPU 资源。
Nginx 对文件的压缩功能是依赖于模块 ngx_http_gzip_module, 默认是内置模块
介绍
# 启用或禁用 gzip 压缩,默认关闭
gzip on | off;
# 压缩比由低到高从 1 9 ,默认为 1 ,值越高压缩后文件越小,但是消耗 cpu 比较高。基本设定未 4 或者 5
gzip_comp_level 4;
# 禁用 IE6 gzip 功能,早期的 IE6 之前的版本不支持压缩
gzip_disable "MSIE [1-6]\.";
#gzip 压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;
# 启用压缩功能时,协议的最小版本,默认 HTTP/1.1
gzip_http_version 1.0 | 1.1;
# 指定 Nginx 服务需要向服务器申请的缓存空间的个数和大小 , 平台不同 , 默认 :32 4k 或者 16 8k;
gzip_buffers number size;
# 指明仅对哪些类型的资源执行压缩操作 ; 默认为 gzip_types text/html ,不用显示指定,否则出错
gzip_types mime-type ...;
# 如果启用压缩,是否在响应报文首部插入 “Vary: Accept-Encoding”, 一般建议打开
gzip_vary on | off;
# 预压缩,即直接从磁盘找到对应文件的 gz 后缀的式的压缩文件返回给用户,无需消耗服务器 CPU
# 注意 : 来自于 ngx_http_gzip_static_module 模块
gzip_static on | off;
示例

4.2 变量介绍

变量使用:

ginx 的变量可以在配置文件中引用,作为功能判断或者日志等场景使用
变量可以分为内置变量和自定义变量
内置变量是由 nginx 模块自带,通过变量可以获取到众多的与客户端访问相关的值。
常用内置变量
$remote_addr;     #存放了客户端的地址,注意是客户端的公网 IP
$args;  # 变量中存放了 URL 中的所有参数   
# 例如 :https://search.jd.com/Search?keyword= 手机 &enc=utf-8
# 返回结果为 : keyword= 手机 &enc=utf-8
$is_args
# 如果有参数为 ? 否则为空
$document_root;
# 保存了针对当前资源的请求的系统根目录 , 例如 :/webdata/nginx/timinglee.org/lee
$document_uri;
# 保存了当前请求中不包含参数的 URI ,注意是不包含请求的指令
# 比如 :http://lee.timinglee.org/var?\id=11111 会被定义为 /var
# 返回结果为 :/var
$host;
# 存放了请求的 host 名称
limit_rate 10240;
echo $limit_rate;
# 如果 nginx 服务器使用 limit_rate 配置了显示网络速率,则会显示,如果没有设置, 则显示 0
$remote_port;
# 客户端请求 Nginx 服务器时随机打开的端口,这是每个客户端自己的端口
$remote_user;
# 已经经过 Auth Basic Module 验证的用户名
$request_body_file;
# 做反向代理时发给后端服务器的本地资源的名称
自定义变量
Syntax: set $variable value;
Default: —
Context: server, location, if

五 nginx反向代理功能

反向代理: reverse proxy ,指的是代理外网用户的请求到内部的指定的服务器,并将数据返回给用户的
一种方式,这是用的比较多的一种方式。
Nginx 除了可以在企业提供高性能的 web 服务之外,另外还可以将 nginx 本身不具备的请求通过某种预
定义的协议转发至其它服务器处理,不同的协议就是 Nginx 服务器与其他服务器进行通信的一种规范,主
要在不同的场景使用以下模块实现不同的功能
ngx_http_proxy_module: # 将客户端的请求以 http 协议转发至指定服务器进行处理
ngx_http_upstream_module # 用于定义为 proxy_pass,fastcgi_pass,uwsgi_pass
# 等指令引用的后端服务器分组
ngx_stream_proxy_module: # 将客户端的请求以 tcp 协议转发至指定服务器处理
ngx_http_fastcgi_module: # 将客户端对 php 的请求以 fastcgi 协议转发至指定服务器助理
ngx_http_uwsgi_module: # 将客户端对 Python 的请求以 uwsgi 协议转发至指定服务器处理

5.1 http反向代理

proxy_pass; # 用来设置将客户端请求转发给的后端服务器的主机
# 可以是主机名 ( 将转发至后端服务做为主机头首部 ) IP 地址:端口的方式
# 也可以代理到预先设置的主机群组,需要模块 ngx_http_upstream_module 支持
服务器配置
客户机配置
并且客户端访问代理到后端服务器上

5.2 nginx四层负载

5.3 实现fastcgi

为什么会有 FastCGI
CGI 协议虽然解决了语言解析器和 Web Server 之间通讯的问题,但是它的效率很低,因为 Web Server
每收到一个请求都会创建一个 CGI 进程, PHP 解析器都会解析 php.ini 文件,初始化环境,请求结束的时候
再关闭进程,对于每一个创建的 CGI 进程都会执行这些操作,所以效率很低,而 FastCGI 是用来提高 CGI
能的, FastCGI 每次处理完请求之后不会关闭掉进程,而是保留这个进程,使这个进程可以处理多个请
求。这样的话每个请求都不用再重新创建一个进程了,大大提升了处理效率。
什么是 PHP-FPM
PHP-FPM(FastCGI Process Manager
FastCGI 进程管理器 ) 是一个实现了 Fastcgi 的程序,并且提供进程管理的功能。
进程包括 master 进程和 worker 进程。 master 进程只有一个,负责监听端口,接受来自 web server
的请求
worker 进程一般会有多个,每个进程中会嵌入一个 PHP 解析器,进行 PHP 代码的处理。
源码编译
yum install -y bzip2 systemd-devel libxml2-devel sqlite-devel
libpng-devel libcurl-devel oniguruma-devel
然后上传php软件
然后编译
./configure --prefix=/usr/local/nginx --add-module=/root/echo-nginx-module-0.63 --add-module=/root/memc-nginx-module-0.20 --add-module=/root/srcache-nginx-module-0.33 --user=nginx --group=nginx --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module  --with-stream  --with-stream_ssl_module  --with-stream_realip_module --with-pcre --
然后make && make install 安装,然后操作文件
设置时区
注释选项,启动系统
启动
准备php测试界面
nginx 配置转发
重启nginx服务
验证php测试界面
添加php环境

5.4 php高速缓存

由于php访问效率有点差,所以需要memcache缓存来提升他的速度,类似于在内存那给他了一个小空间,让他缓存

解压 tar zxf memcache-8.2.tgz

安装

复制测试文件到nginx发布目录中

按要求修改

配置 php 加载 memcache 模块

yum install memcached -y   下载软件并且   配置

高速缓存

make && make install 

配置nginx主目录,让其包含conf.d/*.conf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2058947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Android】adb devices 出现devices offline的问题

1 问题 adb devices 出现devices offline 2 解决方法 adb kill-serveradb start-server 然后,adb devices查看。 adb devices 问题解决啦。。。💛 💙 💜 ❤️ 💚 💛 💙 💜 ❤️…

韩顺平Java-第二十四章:MYSQL基础篇

一 数据库 1 数据库简单原理图 2 使用命令行窗口连接MYSQL数据库 (1)mysql -h 主机名 -P 端口 -u 用户名 -p密码; (2)登录前,保证服务启动。 3 MySQL三层结构 (1)所谓安装MySQL数…

第三期书生大模型实战营 第4关 Llamaindex RAG实践

前置知识 正式介绍检索增强生成(Retrieval Augmented Generation,RAG)技术以前,大家不妨想想为什么会出现这样一个技术。 给模型注入新知识的方式,可以简单分为两种方式,一种是内部的,即更新模…

ES6笔记总结(Xmind格式):第一天

Xmind鸟瞰图: 简单文字总结: es6知识总结: 新增语法: 1.let声明变量的特点: ①let 没有变量提升 ②在同一作用域下let的变量不能重复声明 ③let声明的变量存在块级作用域 2.const声明…

仿真软件的功能有哪些?仿真软件助力科研与工程领域

仿真软件是一种强大的工具,可以帮助工程师和科学家在虚拟环境中模拟和分析各种现象和系统。它们具有广泛的应用领域,包括工程设计、科学研究、产品开发和决策支持等。 随着科技的飞速发展,仿真软件已成为科研与工程领域中不可或缺的工具。本文…

“2025深圳电子信息展”带您感受科技创新如何改变世界

深圳,这座位于中国南海之滨的城市,自改革开放以来,便以惊人的速度崛起,成为了全球瞩目的经济特区与创新高地。被誉为“中国的硅谷”,深圳不仅是中国科技创新的重要引擎,更是高新技术产业的璀璨明珠&#xf…

洗衣行业在线预约小程序源码系统 源码可二次开发 带源代码包以及搭建部署教程

系统概述 在快节奏的现代生活中,时间成为了人们最宝贵的资源之一。随着科技的飞速发展,各行各业都在积极探索数字化转型,以提升服务效率与用户体验。洗衣行业,作为日常生活中不可或缺的服务领域,也不例外。今天&#…

记一次 SAP BP 编号范围错误引发的一个问题 GET_NRIV_LINE

本来想着循着错误提示去排查,但是还是想看看业务发生了什么,他们的操作是否有问题,不经意间发现 号码段是有问题的,由此大概可以判断是他们编号范围和类型之间的问题 角色和分组是否一致的,如果不一致就发生了以上错误…

roles及项目搭建(thirty-two day)

回顾: playbook 1、调用剧本 ansible-playbook /etc/ansible/playbook/book001.yml 2、编写剧本 --- - hosts: s1remote_user: roottasks:- name: 卸载httpdyum: namehttpd stateabsent- name: 安装nginxyum: namenginx …

知识付费小程序的优势

1. 便捷性:用户可以随时随地通过手机访问小程序,获取所需的知识内容,不受时间和空间的限制。 2. 精准定位:能够根据用户的兴趣、需求和行为数据,为其精准推送符合其需求的知识产品,提高用户满意度和购买转化…

最新专业版Python+PyCharm安装保姆级教程(附安装包+永久插件码)

想入门学习python,那么你的python和pycharm安装好是第一步!!!今天小编详细讲一下安装教程 如果你正准备入门Python并且找不到方向和学习路线的话可以试试我这一份学习方法+籽料呀! 点击 领取(无…

[数据集][目标检测]集装箱缺陷检测数据集VOC+YOLO格式4127张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4127 标注数量(xml文件个数):4127 标注数量(txt文件个数):4127 标注…

STM32(F429) DAC 详解与应用实例

目录 前言 一、DAC 概述 1.主要特点 2.工作原理 3.DAC通道框图 二、DAC 的配置与使用 1.硬件连接 2.软件配置 3.应用实例:模拟电压输出 三、DAC 的高级应用 1.三角波的生成 2.噪音生成 四、DAC 的应用注意事项 1.参考电压选择 2.输出负载能力 3.噪声…

pulsar官方文档学习记录——pulsasr事务

pulsar事务 之前pulsar消息机制,和架构概览作为一个后端搬砖的需要了解的也差不多了。再补充个pulsar事务 因为exactly-once语义应用场景很多 pulsar事务可以能使流应用程序能够在一个原子操作中 ,消费、处理消息,生成消息。 需要事务的原…

JS高级类型存储方式——含堆/栈分析

1、内存 在编写正式内容前,首先需要弄清楚的一个概念就是:内存 内存 :也就是电脑中的硬件 ,内存越大,可以同时开启的程序就越多内存的作用: 存储运行中的代码,把代码执行过程中所需要的数据&…

Halcon20.11深度学习目标检测模型

1.前言:.Halcon的深度学习标注工具一直在更新,我下载的20.11版本的Deep Learning Tool已经显示过期,无奈只能下载最新版MVTec Deep Learning Tool 24.05。不过最新版的标注工具做的很人性化,分类,目标检测,…

化挑战为机遇,联想凌拓迎来杨旭时代

【全球存储观察 | 科技热点关注】 2024年7月,联想凌拓CEO杨旭上任,引发业界广泛关注,成为国内数据存储领域的新闻焦点。 现在,联想凌拓迎来了杨旭时代。作为联想凌拓CEO,杨旭的到任给联想凌拓带来了怎样的…

又有不少人要为《黑神话:悟空》买电脑了

1. 什么是 3A 游戏?2. 《黑神话:悟空》是一款怎样的游戏?3. 又有不少人要为《黑神话:悟空》买电脑了 3.1. 《黑神话:悟空》对电脑性能的要求3.2. 性能测试工具 不管你是游戏玩家还是非游戏玩家,这两天肯定被“黑悟空”刷屏了。 因为就在昨…

爆赞!斯坦福大学力作《深度学习漫画书》,翻烂它都不为过!

“斯坦福大学深度学习漫画书”是一本以漫画形式介绍深度学习基础知识的书籍,作者是Andrew Ng。 这本书以漫画形式切入,将一图胜千言的道理玩到了极致!并通过生动有趣的漫画形式来深入了解深度学习的概念和应用,把复杂的深度学习技…

【本社翻译】Unity官方XR开发电子书

上个月(2024年7月),Unity 官方发布了一本聚焦 XR 开发的电子书,书名为《Create Virtual and Mixed Reality Experiences in Unity》。本书系统介绍了以 XR Interaction Toolkit 为代表的一系列 Unity XR 开发工具集,深…