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

Centos9 安装 nginx 及配置

1. 安装nginx

  1. 安装依赖软件,安装之前可以看一下是否已经安装过以下软件,dnf list installed | grep zlib
dnf install gcc-c++
dnf install zlib
dnf install pcre pcre-devel
dnf install openssl openssl-devel
  1. 下载nginx,这里是下载到opt文件夹
    nginx官网下载页面
[root@centoshost opt]# wget https://nginx.org/download/nginx-1.26.3.tar.gz
  1. 解压nginx,新建一个nginx目录
[root@centoshost opt]# tar -vxf nginx-1.26.3.tar.gz 
[root@centoshost opt]# mkdir nginx

在这里插入图片描述

  1. 编译nginx到/opt/nginx
[root@centoshost opt]# cd nginx-1.26.3
[root@centoshost nginx-1.26.3]# ./configure --prefix=/opt/nginx
[root@centoshost nginx-1.26.3]# make
[root@centoshost nginx-1.26.3]# make install
[root@centoshost nginx-1.26.3]# cd ..
[root@centoshost opt]# cd nginx
[root@centoshost nginx]# ll
总用量 4
drwxr-xr-x. 2 root root 4096  420 11:29 conf
drwxr-xr-x. 2 root root   40  420 11:29 html
drwxr-xr-x. 2 root root    6  420 11:29 logs
drwxr-xr-x. 2 root root   19  420 11:29 sbin
  1. 启动nginx
[root@centoshost nginx]# cd sbin
[root@centoshost sbin]# ll
总用量 3796
-rwxr-xr-x. 1 root root 3914936  420 11:29 nginx
[root@centoshost sbin]# ./nginx
[root@centoshost sbin]# ps -aux|grep nginx
root     1861753  0.0  0.0   4344  1256 ?        Ss   11:33   0:00 nginx: master process ./nginx
nobody   1861754  0.0  0.2  13144  4840 ?        S    11:33   0:00 nginx: worker process
root     1863247  0.0  0.1   6344  1792 pts/0    R+   11:34   0:00 grep --color=auto nginx
  1. 通过浏览器访问服务器的80端口
  2. 停止nginx
[root@centoshost sbin]# ./nginx -s stop
[root@centoshost sbin]# ps -aux|grep nginx
root     1874737  0.0  0.1   6344  1920 pts/0    S+   11:38   0:00 grep --color=auto nginx
  1. 修改配置文件并刷新
[root@centoshost nginx]# pwd
/opt/nginx
[root@centoshost nginx]# ll
总用量 4
drwxr-xr-x. 2 root   root 4096  420 11:29 conf
drwxr-xr-x. 2 root   root   40  420 11:29 html
drwxr-xr-x. 2 root   root   41  420 11:38 logs
drwxr-xr-x. 2 root   root   19  420 11:29 sbin
[root@centoshost nginx]# vim ./conf/nginx.conf
[root@centoshost nginx]# ./sbin/nginx -s reload

nginx 常用命令

  • nginx 文件,后缀是temp的文件是后来自动生成的,可以删除
[root@centoshost nginx]# ll
总用量 4
drwx------. 2 nobody root    6  420 11:33 client_body_temp
drwxr-xr-x. 2 root   root 4096  420 11:41 conf
drwx------. 2 nobody root    6  420 11:33 fastcgi_temp
drwxr-xr-x. 2 root   root   40  420 11:29 html
drwxr-xr-x. 2 root   root   58  420 14:26 logs
drwx------. 2 nobody root    6  420 11:33 proxy_temp
drwxr-xr-x. 2 root   root   19  420 11:29 sbin
drwx------. 2 nobody root    6  420 11:33 scgi_temp
drwx------. 2 nobody root    6  420 11:33 uwsgi_temp
  • 启动nginx
[root@centoshost nginx]# ./sbin/nginx
  • 刷新配置
[root@centoshost nginx]# ./sbin/nginx -s reload
  • 停止nginx
[root@centoshost nginx]# ./sbin/nginx -s stop
  • 查看nginx进程
[root@centoshost ~]# ps -aux|grep nginx

2. 配置nginx

超详细配置解释参考文章链接

1. 全局块

全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

  • nginx 用户和组的配置,window 下不指定,但是在 linux 里面推荐使用 root
user root;
  • 绑定 cup 的核心,默认为 1 一般配置可以 Auto [自动适配操作系统]
worker_processes auto;
  • 绑定 nginx 到某一个 cpu 的核心 把 nginx 绑定到所在机器的 1 号和 2 号 CPU 上,01代表1号,10代表2号,这里是2进制
worker_cpu_affinity 01 10
  • 添加优先级(-20-20)数字越小优先级越高
worker_priority -20
  • 错误日志的存放
error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;
  • 指定pid文件的存放路径
pid        logs/nginx.pid;

2. events块

配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

  • 指这一每个工作进程可以同时处理的最大连接数,理论上每台 nginx 服务器的最大连接数为 worker_processes * worker_connections
worker_connections 1024;
  • ON 时 Nginx 服务器的每个工作进程可以同时接受多个新的网络连接,此指令默认为 off,即默认为一个工作进程只能一次接受一个连接
 multi_accept on;

3. http块

可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

  • 加载mime类型,类型由mime.type文件提供
include       mime.types;
  • 设置mime类型,当文件没有明确定义类型时,使用默认类型
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;
  • 为了平衡硬盘和IO的处理速度,降低系统的响应时间
sendfile        on;
  • 在sendfile为on的状态下,避免网络阻塞
tcp_nopush     on;
  • 设置服务器和客户端回话的保持时间
#keepalive_timeout  0;
keepalive_timeout  65;
  • 开启/关闭gzip压缩
gzip  on;

4. server块

每个server块就相当于一台虚拟主机,它内部可有多台主机联合提供服务,一起对外提供在逻辑上关系密切的一组服务(或网站)。在使用Nginx服务器提供Web服务时,利用虚拟主机的技术就可以避免为每一个要运行的网站提供单独的Nginx服务器,也无需为每个网站对应运行一组Nginx进程。虚拟主机技术使得Nginx服务器可以在同一台服务器上只运行一组Nginx进程,就可以运行多个网站。

  • 多个server中,主机名与域名不能完全相同
    主机名相同,端口要不同;端口相同,主机名要不同
    如果两个server的端口和主机名都相同,下面的server将会被忽略
 # 该主机的监听端口listen       80;# 设置主机名称或者域名server_name  localhost;

5. localtion块

location块的主要作用是,基于Nginx服务器接收到的请求字符串,对除虚拟主机名称之外的字符串进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能都是在这部分实现。许多第三方模块的配置也是在location块中提供功能。

location / {# 设置网站根目录,可指向任何目录,例如:/home/wwwroot/root   html;# 设置默认首页,例如:index.htmlindex  index.html index.htm;
}

1. location的匹配规则

符号规则优先级
=精确匹配1
^~以某个字符串开头2
~区分大小写的正则匹配3
~*不区分大小写的正则匹配4
!~区分大小写的不匹配正则5
!~*不区分大小写的不匹配正则6
/通用匹配,任何请求都会匹配到7
  1. 示例
        # 通用匹配location / {return 200 "通用匹配 location / \n";}# 正则匹配,区分大小写location ~ /hello {return 200 "正则匹配,区分大小写 location ~ /hello/ \n";}# 正则匹配,不区分大小写location ~* /hello {return 200 "正则匹配,不区分大小写 location ~* /hello \n";}# 以...开头的匹配location ^~ /hello {return 200 "以...开头的匹配 location ^~ /hello \n";}# 精确匹配location = /hello {return 200 "精确匹配 location = /hello \n";}
# /hello
精确匹配 location = /hello 
# /nginx/hello
正则匹配,区分大小写 location ~ /hello/ 
# /hellonginx...开头的匹配 location ^~ /hello 
# /hEllo
正则匹配,不区分大小写 location ~* /hello 
# /hello/world...开头的匹配 location ^~ /hello 
# /world
通用匹配 location / 

2. 获取路径参数

location /error {error_page 418 = @error418;error_page 419 = @error419;if ($args ~ "418"){return 418;}if ($args ~ "419"){return 419;}}
location @error418 {return 200 "418 \n";
}
location @error419 {return 200 "419 \n";
}
[root@centoshost nginx]# curl localhost/error?418
418 
  1. 获取完整的请求参数
location /test {return 200 "请求参数为:$args";
}

当访问 http://yourserver.com/test?name=John&age=30 时,Nginx 会返回 请求参数为:name=John&age=30。

  1. 使用 $arg_参数名 获取指定参数的值

location /test {if ($arg_name) {return 200 "您的名字是:$arg_name";} else {return 400 "未提供名字参数";}
}

当访问 http://yourserver.com/test?name=Alice 时,Nginx 会返回 您的名字是:Alice;如果访问 http://yourserver.com/test,则会返回 未提供名字参数。

  1. 使用正则表达式匹配路径中的参数
location ~ ^/user/(\w+)$ {set $username $1;return 200 "欢迎,$username!";
}

~ ^/user/(\w+)$ 是一个正则表达式,它匹配以 /user/ 开头,后面跟着一个或多个单词字符的路径。(\w+) 是一个捕获组,捕获到的内容会赋值给 $1 变量,这里通过 set $username $1; 将其赋值给自定义变量 $username。当访问 http://yourserver.com/user/Bob 时,Nginx 会返回 欢迎,Bob!

3. 重定向

浏览器访问a.html

location /a.html {return 301 https://www.baidu.com; # 重定向到百度
}

4. 反向代理

浏览器访问a.html

location /a.html {proxy_pass http://www.baidu.com; # 如果是https需要ssl证书
}
  • 使用全局变量设置请求头
location /a.html {porxy_set_header X_Real_IP $remote_addr;proxy_set_header X-Forwarded-Host $http_host;proxy_set_header X-Forwarded-Port $server_port;proxy_set_header X-Forwarded-Server $server_name;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Forwarded-Url $scheme://$http_host$request_uri;proxy_pass http://www.baidu.com; # 如果是https需要ssl证书
}

5. 开启目录浏览

  • /menu/download/URI要与目录路径相匹配
location /menu/download/  {autoindex on;   # 开启目录浏览autoindex_exact_size off;   # 关闭计算目录文件大小autoindex_localtime on;   # 显示本地时间格式
}
  • 真实路径
    在这里插入图片描述

  • 效果
    在这里插入图片描述

6. 全局变量

分类变量名说明
与服务器相关$server_name当前请求的服务器名称,根据请求的域名确定
与服务器相关$server_port服务器监听的端口号
与服务器相关$document_root当前请求的文档根目录,通常在 server 块中通过 root 指令设置
与客户端请求相关$remote_addr客户端的 IP 地址
与客户端请求相关$remote_port客户端的端口号
与客户端请求相关$http_user_agent客户端发送请求时附带的 User - Agent 字段的值,包含浏览器类型、版本、操作系统等信息
与客户端请求相关$http_cookie客户端发送的 Cookie 信息
与客户端请求相关$request_method客户端的请求方法,如 GETPOSTPUTDELETE
与客户端请求相关$request_uri客户端请求的完整 URI,包括查询字符串。例如,对于请求 http://example.com/index.html?param=value$request_uri 的值为 /index.html?param=value
与客户端请求相关$uri客户端请求的 URI,不包含查询字符串。对于上述例子,$uri 的值为 /index.html
与请求处理相关$args请求中的查询字符串。例如,对于请求 http://example.com/index.html?param=value$args 的值为 param=value
与请求处理相关$scheme请求使用的协议,通常是 httphttps
与请求处理相关$server_protocol服务器使用的协议版本,如 HTTP/1.1HTTP/2
与时间相关$time_iso8601当前时间的 ISO 8601 格式表示,例如 2025-04-21T12:00:00+08:00
与时间相关$time_local当前时间的本地格式表示,例如 21/Apr/2025:12:00:00 +0800

6. 负载均衡

假设有3个服务器同时给我们提供服务,3个服务器的地址分别是:

localhost:8001;
localhost:8002;
localhost:8003;
  1. 配置nginx反向代理
http {# ... 其他配置# 配置服务组,名字是groupupstream group{server localhost:8001;server localhost:8002;server localhost:8003;}server {listen       80;server_name  localhost;charset utf-8;# 配置反向代理,指向服务组location / {proxy_pass http://group;}
}
  • 效果:会在3个服务之间轮着使用
    在这里插入图片描述
  1. ip_hash
    # 配置服务组upstream group{server localhost:8001;server localhost:8002;server localhost:8003;ip_hash;}

效果:用户固定访问一个服务器
ip_hash:Nginx 会根据客户端的 IP 地址进行哈希计算,然后将请求固定地转发到某个上游服务器。这样可以确保来自同一个客户端的请求始终被转发到同一台服务器,对于一些需要保持会话状态的应用(如用户登录后需要在同一台服务器上处理后续请求)非常有用。

  1. 配置权重
    # 配置服务组upstream group{server localhost:8001 weight=1;server localhost:8002 weight=1;server localhost:8003 weight=2;# ip_hash;}
  • 效果:服务器的使用会按照权重的比例出现
    在这里插入图片描述
  1. 配置最大失败次数和不可用时间
    # 配置服务组upstream group{server localhost:8001 weight=1 max_fails=2 fail_timeout=30s;server localhost:8002 weight=1 max_fails=2 fail_timeout=30s;server localhost:8003 weight=2 max_fails=2 fail_timeout=30s;# ip_hash;}
  • fail_timeout:定义了服务器失败后的不可用时间
  • max_fails:最大失败次数
  • 表示在 fail_timeout 时间段内,允许该服务器失败(例如返回错误状态码等情况)的最大失败次数是max_fails。如果在 fail_timeout 内失败次数达到 max_fails 次,Nginx 将认为该服务器暂时不可用,在 fail_timeout 时间段内不会再将请求转发到该服务器。

相关文章:

Centos9 安装 nginx 及配置

1. 安装nginx 安装依赖软件,安装之前可以看一下是否已经安装过以下软件,dnf list installed | grep zlib dnf install gcc-c dnf install zlib dnf install pcre pcre-devel dnf install openssl openssl-devel下载nginx,这里是下载到opt文…...

总结设计测试用例的万能公式

现在有⼀款产品,要求我们对“⻔锁”设计测试⽤例,假如你是测试⼈员,你会怎么设计呢? 1 常规思考逆向思维发散性思维 设计测试⽤例的原则⼆: 1.测试⽤例的编写不仅应当根据有效和预料到的输⼊情况,⽽且也…...

Android RK356X TVSettings USB调试开关

Android RK356X TVSettings USB调试开关 平台概述操作-打开USB调试实现源码补充说明 平台 RK3568 Android 11 概述 RK3568 是瑞芯微(Rockchip)推出的一款高性能处理器,支持 USB OTG(On-The-Go)和 USB Host 功能。US…...

python生成动态库在c++中调用

一.Windows下生成动态库.pyd 在setup.py的同目录下使用python setup.py build_ext --inplace 二.在vscode的c中使用.pyd文件(动态库) 1)配置python的环境 python -c "import sys; print(sys.executable)" #确定python安装位置 2…...

大模型数据味蕾论

大模型数据味蕾论 大模型的成长路径:从婴儿到专家预训练数据的"四维口味"模型从文本到模型:数据处理的关键步骤"大模型数据味蕾论"结语 AI大模型就像一位厨师,预训练数据就是这位厨师的味蕾。 没有经过训练的味蕾&#x…...

网络编程4

day4 一、Modbus 1.分类 (1).Modbus RTU: 运行在串口上的协议,采用二进制表现形式以及紧凑型数据结构,通信效率高,应用广泛。(2).Modbus ASCII: 运行在串口上的协议,采用ASCII码传输,并且利用特殊字符作为其字节的开始…...

neo4j-community-3.5.5-unix.tar.gz安装

从官网找了下包,哎,奈何访问不了github,那就找镜像吧,哎,也是不通。 # docker search neo4j Error response from daemon: Get "https://index.docker.io/v1/search?qneo4j&n25": dial tcp 202.160.128.40:443: i…...

高防IP能抵御哪些类型的网络攻击?

高防IP(High Defense IP)是一种专门针对网络攻击设计的防护服务,主要通过流量清洗、协议分析、行为检测等技术抵御多种网络攻击。以下是其能防御的主要攻击类型及原理: ​​一、常见防御的攻击类型​​ ​​DDoS攻击(分…...

动态监控进程

1.介绍: top和ps命令很相似,它们都是用来显示正在执行的进程,top和ps最大的不同之处,在于top在执行中可以更新正在执行的进程. 2.基本语法: top [选项] 选项说明 ⭐️僵死进程:内存没有释放,但是进程已经停止工作了,需要及时清理 交互操作说明 应用案…...

你学会了些什么220622?--搭建UI自动化

jenkins访问地址:http://192.168.82.129:8080/ 账号密码:admin/a123456a ***** 什么是UI自动化** 使用工具或者脚本对需要测试的软件的前端界面在预设的条件下,在已有的测试数据下运行系统或者应用程序,并获取其前端页面UI显示的…...

深入理解自监督学习(Self-Supervised Learning):理论与实践

📌 友情提示: 本文内容由银河易创AI(https://ai.eaigx.com)创作平台的gpt-4o-mini模型生成,旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证,建议读者通过官方文档或实践进一步确认其准…...

时序逻辑入门指南:LTL、CTL与PTL的概念介绍与应用场景

引言 在计算机科学和形式化方法中,**时序逻辑(Temporal Logic)**是描述系统动态行为的核心工具,它允许我们形式化地表达“时间”相关的性质,例如“某事件最终会发生”或“系统始终满足安全条件”。其中,LTL(线性时序逻辑)、**CTL(计算树逻辑)和PTL(命题时序逻辑)*…...

Spring Boot 整合 JavaFX 核心知识点详解

1. 架构设计与集成模式 1.1 Spring Boot 与 JavaFX 的分层架构设计 Spring Boot 与 JavaFX 的整合需要精心设计的分层架构,以充分利用两个框架的优势。 标准分层架构 ┌────────────────────────────────────────────────…...

进程与线程:02 多进程图像

多进程图像的起源与核心地位 上节课我们开启了对操作系统核心概念——多进程图像的学习,探讨了其产生的原因。操作系统的核心职责之一是管理CPU,CPU作为实现取指执行的硬件自动化部件,只有执行取指操作(即取出并执行程序指令 &am…...

基于SIMMECHANICS的单自由度磁悬浮隔振器PID控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 单自由度磁悬浮减振器工作原理简介 4.2 SIMMECHANICS工具箱 5.完整工程文件 1.课题概述 基于SIMMECHANICS的单自由度磁悬浮隔振器PID控制系统simulink建模与仿真。其中,SIMMECHANICS是M…...

FreeRTOS互斥信号量解决优先级翻转实战教程

FreeRTOS互斥信号量解决优先级翻转实战教程 大家好!今天我们来深入探讨FreeRTOS中的优先级翻转问题,并通过互斥信号量来解决这个问题。上一篇文章我们已经了解了优先级翻转的现象,今天我们将动手实践,通过代码对比来直观感受互斥…...

Spark-SQL 四(实验)

用idea实验hive的常用代码 将数据放到项目的目录下 代码实现 运行结果: 实验 统计有效数据条数及用户数量最多的前二十个地址 将数据放到Spark-SQL/input目录下 代码实现: 运行结果:...

前端技术未来的发展趋势分析

以下是关于前端技术未来发展趋势的深度分析,结合行业动态和技术演进方向,从多个维度展开: 一、核心发展趋势 1. 框架融合与性能极致化 趋势:React/Vue/Solid 等框架在编译时优化(如React Forget编译器)和…...

字节扣子空间开启内测!附免费邀请码!

3月初,当Manus作为首个通用智能体横空出世时,整个科技圈都沸腾了。 当时我就预言过:这种创新产品要真正普及,还得看大厂动作(毕竟创业公司的资源有限啊)。 这不,字节跳动最近就悄悄放出了大招—…...

高并发场景下的淘宝 API 开发实践:商品数据实时采集与性能优化

在电商行业竞争激烈的当下,实时获取海量商品数据成为企业把握市场动态、制定精准策略的关键。然而,高并发场景下对淘宝 API 的调用极易引发性能瓶颈与稳定性问题。本文将围绕高并发场景下淘宝 API 开发,深入讲解商品数据实时采集的技术要点&a…...

如何将Qt程序打包成应用程序?

1、使用release模式,编译项目 2、新建一个文件夹(不要有中文路径),将刚才编译生成的可执行文件(.exe)放入新建的文件夹下。 可执行文件通常生成在项目目录下的构建文件夹中,如 build-项目名-套…...

AI重塑网络安全:机遇与威胁并存的“双刃剑”时代

一、引言 人工智能(AI)技术的迅猛发展,正在深刻改变网络安全行业的格局。从ChatGPT生成钓鱼邮件到AI驱动的漏洞挖掘,从零信任架构的普及到安全大模型的实战应用,AI既是攻击者的“新武器”,也是防御者的“新…...

c++基础·列表初始化

目录 一、列表初始化的核心优势 二、基础数据类型与数组初始化 1. 基础类型初始化 2. 数组初始化 三、类与结构体初始化 1. 构造函数匹配规则 2. 注意事项 四、标准容器初始化 五、聚合类型(Aggregate Types)初始化 1. 聚合类型定义 2. 初始化…...

颠覆传统!毫秒级响应的跨平台文件同步革命,远程访问如本地操作般丝滑

文章目录 前言1. 安装Docker2. Go File使用演示3. 安装cpolar内网穿透4. 配置Go File公网地址5. 配置Go File固定公网地址 前言 在这个信息爆炸的时代,谁不曾遭遇过类似的窘境呢?试想,当你正于办公室中埋首案牍时,手机突然弹出一…...

目标检测中的损失函数(二) | BIoU RIoU α-IoU

BIoU来自发表在2018年CVPR上的文章:《Improving Object Localization With Fitness NMS and Bounded IoU Loss》 论文针对现有目标检测方法只关注“足够好”的定位,而非“最优”的框,提出了一种考虑定位质量的NMS策略和BIoU loss。 这里不赘…...

RS232 串行通信:C++ 实现指南

文章目录 一、RS232 简介1. 电气特性2. 传输速率3. 传输距离 二、在 C 中实现 RS232 通信1. Windows 平台(1)打开串行端口(2)配置串行通信参数(3)发送数据(4)接收数据(5&…...

电控---SWD协议

SWD协议是烧录调试常用的协议,本文对SWD协议进行了,覆盖物理层、协议层、寄存器结构、信号时序、安全特性、实际应用及最新发展趋势的讲解。 一、物理层架构与信号特性 1. 引脚定义与电气规范 核心引脚: SWDIO(双向数据线&…...

Linux系统下docker 安装 redis

docker安装最新版的redis 一、docker拉取最新版redis镜像 拉取镜像若没有指定版本,代表拉取最新版本 二、查询redis镜像 三、挂载配置文件 在docker容器内修改redis配置文件不方便,所以挂载配置文件,这样可以在外边修改redis配置 3.1 创建…...

第 2 篇:初探时间序列 - 可视化与基本概念

第 2 篇:初探时间序列 - 可视化与基本概念 (图片来源: Luke Chesser on Unsplash) 在上一篇《你好,时间序列!》中,我们了解了什么是时间序列数据以及学习它的重要性。现在,是时候卷起袖子,真正开始接触和探…...

适配器模式:化解接口不兼容的桥梁设计

适配器模式:化解接口不兼容的桥梁设计 一、模式核心:让不兼容的接口协同工作 在软件开发中,经常会遇到接口不兼容的情况:如旧系统提供的接口无法被新系统直接调用,或第三方库的接口与当前系统设计不匹配。适配器模式…...

科大讯飞Q1营收46.6亿同比增长27.7%,扣非净利同比增长48.3%

4月21日盘后,AI龙头科大讯飞(002230.SZ)发布2024年报,公司全年实现营业收入233.43亿元,同比增长18.79%,同期归母净利润为5.6亿元。 公司核心赛道业务保持快速增长,消费者、教育、汽车、医疗业务…...

基于大模型的血栓性外痔全流程风险预测与治疗管理研究报告

目录 一、引言 1.1 研究背景与目的 1.2 研究意义 二、血栓性外痔概述 2.1 定义与发病机制 2.2 临床表现与诊断方法 2.3 现有治疗手段综述 三、大模型在血栓性外痔预测中的应用原理 3.1 大模型技术简介 3.2 模型构建与训练数据来源 3.3 模型预测血栓性外痔的工作流程…...

Transformer系列(三):编码器—解码器架构

Transformer架构 一、多头自注意力 (Multi-head self-attention)将矩阵维度从d降到d/k的优点 二、层归一化 (Lary Norm)三、残差连接 (Residual Connections)Add and Norm 四、注意力对数几率缩放 (Attention logit scaling)五、T…...

C++入门小馆: 深入string类(二)

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的pa…...

MCU开发学习记录10 - 高级定时器学习与实践(HAL库)—PWM互补输出、死区控制、刹车控制 - STM32CubeMX

本文将介绍高级定时器的概念(只讲解高级定时器特有功能)、相关函数以及STM32CubeMX生成定时器的配置函数以及对生成定时器的配置函数进行分析(包括结构体配置、相关寄存器配置)。针对于高级定时器实践:实现输出PWM互补…...

pytest基础-new

规范 1、首先创建 py 文件命名以 test_ 开始或者以 _test 结尾 2、若是新建类,测试类需要以 Test_开头 3、测试用例(方法)需要以 test_开头 assert 断言 assert xx:判断 xx 为真 assert not xx:判断 xx 不为真 asse…...

利用Qt创建一个模拟问答系统

界面: 添加了聊天显示区域(QTextEdit) 添加了发送按钮和清空对话按钮 优化了布局和窗口大小添加了时间戳显示 2、功能: 支持实时对话可以清空对话历史 支持按回车发送消息 添加了简单的关键词匹配响应系统 交互体验&#x…...

CCF CSP 第37次(2025.03)(1_数值积分_C++)

CCF CSP 第37次(2025.03)(1_数值积分_C) 解题思路:思路一: 代码实现代码实现(思路一): 时间限制: 1.0 秒 空间限制: 512 MiB 原题链接 解题思路…...

使用 Flutter 遇坑小计

前言 首先, 谷哥很贴心地为国内用户准备了一份使用手册 不过很遗憾 就算你照着它的手册来了, 还是会在后续使用中遇到其它的坑 今天我踩了, 保不齐明天就是其他人(lol) running gradle task ‘assembledebug’ stuck 首先去确定下当下Android Studio(或者说你目前的Flutter项…...

C语言中的双链表和单链表详细解释与实现

C语言中的双链表详细解释与实现 双链表(Doubly Linked List)是一种常见的数据结构,它比单链表更灵活,因为每个节点都包含指向前驱和后继节点的指针。 双链表的基本结构 节点定义 c 复制 下载 typedef struct Node {int dat…...

CSS零基础入门笔记:狂神版

前言 本笔记是学习狂神的java教程,建议配合视频,学习体验更佳。 【狂神说Java】HTML5完整教学通俗易懂_哔哩哔哩_bilibili 第1-2章:Java零基础入门笔记:(1-2)入门(简介、基础知识)-CSDN博客 第3章&…...

使用python调用deepseek 多轮对话,详细讲解

以下代码实现在python中与deepseek实现多轮对话。 Messages参数是对话历史和上下文的核心载体。 数据结构: • 必须是包含消息对象的数组 • 每个消息对象必须包含: o role:发言者身份(system/user/assistant) o con…...

requestAnimationFrame是什么?【前端】

亲爱的读者,希望今天的你好心情~ 目录 requestAnimationFrame是什么?目的?举个栗子: requestAnimationFrame是什么? requestAnimationFrame 是一种用于优化动画性能的 JavaScript API。它允许你在浏览器的下一次重绘之…...

SQL Server基础

二. SQL Server数据库 1. 数据库简介 数据库本质是写成磁盘文件,在硬盘中存储用处 存储大量数据,方便检索和访问保持数据信息的一致、完整共享和安全通过组合分析,产生新的有用信息 数据库发展史 萌芽阶段:文件系统,…...

Vue-组件的懒加载,按需加载

在Vue项目中实现组件的懒加载(也称为按需加载或代码分割),可以大大提升应用的加载速度和性能。懒加载主要通过Webpack的代码分割功能实现,特别是使用动态导入(import()语法)。 为什么要使用懒加载&#xf…...

Docker 镜像、容器和 Docker Compose的区别

前言:Docker 的镜像、容器和 Docker Compose 是容器化技术的核心组件,以下是对它们的详细解析及使用场景说明。 ​​1、Docker 镜像(Image)​​ ​​定义​​: 镜像是只读模板,包含运行应用程序所需的代码、…...

批量创建同名文件夹并整理文件至对应文件夹

在我们的日常工作和生活中,创建文件几乎是必不可少的一部分。随着时间的推移,电脑中积累了大量的文件,管理这些文件成为一项繁琐且耗时的任务。尤其当我们需要按照一定规则对文件进行整理时,很多人会感到困惑。例如,领…...

每日一题——数据中心网络地址规划

文章目录 数据中心网络地址规划问题描述输入格式输出格式示例输入示例输出实现思路1. IP地址转换2. 区间排序3. 动态规划 C语言完整实现(含详细注释)总结 数据中心网络地址规划 问题描述 你是一名数据中心网络地址规划人员。每个业务需要一段IP地址区间…...

如何远程访问家中服务器-FRP内网穿透详细

💡 本文会带给你 如何远程访问家中服务器FRP自动运行的方法一、准备工作 准备一台具备公网 IP 的服务器(如阿里云、腾讯云等云服务器,要求不高,几十块一年服务的轻型服务就行),用于部署 FRP 服务端(frps)。 家中电脑(内网设备),用于运行 FRP 客户端(frpc)。 下…...

el-select+vue-virtual-scroller解决数据量大卡顿问题

解决el-select中数据量过大时,显示及搜索卡顿问题,及正确的回显默认选中数据 粗略的封装了组件,有需要各种属性自定义的,自己添加设置下 环境 node 16.20.1 npm 8.19.4 vue2、element-ui "vue-virtual-scroller"…...