Nginx 运维开发高频面试题详解
一、基础核心问题
原文链接:https://blog.csdn.net/weixin_51146329/article/details/142963853
1、什么是Nginx?
Nginx 是一个高性能的 HTTP 和反向代理服务器,它以轻量级和高并发处理能力而闻名。Nginx 的反向代理功能允许它作为前端服务器,接收客户端的请求并将它们转发到后端服务器,这样可以隐藏后端服务器的细节,提高安全性Nginx 也能够作为负载均衡器,将流量分配到多个后端服务器,这样可以提高网站的可用性和扩展性。Nginx 还支持静态文件服务,由于其高效的文件处理能力,它经常被用来作为静态资源的服务器,如图片、CSS 和 JavaScript 文件等
2. Nginx的特点和优势是什么?
Nginx 是一个高性能的 HTTP 和反向代理服务器,具有以下特点和优势:
-
高并发处理:Nginx 使用异步非阻塞 I/O 模型(如
epoll
在 Linux 系统中),这使得它可以高效地处理大量并发连接。每个 Worker 进程可以处理数千个并发连接而不消耗过多资源 -
低内存消耗:由于其轻量级的设计,Nginx 占用的系统资源相对较少,即使在处理数万并发连接时也能保持较低的内存占用 ty-reference。
-
反向代理与负载均衡:Nginx 提供了强大的反向代理功能,并且支持多种负载均衡算法,比如轮询、加权轮询、IP Hash 等,能够有效地分散流量并提高服务可用性
-
热部署:Nginx 支持平滑重启(
nginx -s reload
),可以在不中断现有服务的情况下加载新的配置文件或升级到新版本 -
模块化设计:Nginx 的核心功能是通过一系列独立的模块实现的,这些模块可以根据需要进行编译加载,从而提供了高度的灵活性
3. Nginx的Master-Worker进程模型是如何工作的?
Nginx 采用了一种称为 Master-Worker 的架构来管理请求处理流程:
-
Master 进程:作为主控进程,它负责读取和验证配置文件、绑定端口以及启动和监控 Worker 进程。此外,Master 还能响应来自管理员的操作指令,例如重新加载配置或者优雅地关闭服务
-
Worker 进程:由 Master 创建的多个 Worker 进程实际负责处理客户端请求。每个 Worker 都是一个单线程进程,利用事件驱动机制处理网络I/O操作。通常情况下,Worker 的数量设置为 CPU 核心数以最大化硬件利用率
4、Nginx怎么处理请求的?
1、接收请求:当客户端发送一个 HTTP 请求到 Nginx 时,Nginx 的工作进程或线程会接收这个请求。
2、匹配 Server 和 Location:Nginx 会根据请求的域名和 URI 匹配相应的 server 块和 location 块。这是通过 listen 和 server_name 指令匹配 server 模块,再匹配 server 模块里的 location 实现的。
3、处理请求:一旦匹配到相应的 location 块,Nginx 就会根据该块中的配置处理请求。这可能涉及到静态文件服务、代理请求到后端服务器、重定向、返回错误页面等操作。
4、响应客户端:处理完请求后,Nginx 会生成一个响应并发送回客户端。
5. 正向代理 vs 反向代理的区别?Nginx属于哪种?
-
正向代理:代理服务器位于客户端与目标服务器之间。客户端通过代理服务器向目标服务器发送请求。目标服务器只能看到代理服务器的 IP 地址,而看不到客户端的真实 IP 地址。正向代理通常用于客户端访问互联网时,通过代理服务器来访问外部资源,这可以提高安全性和隐私保护。
-
反向代理:反向代理位于客户端和目标服务器之间,但与正向代理不同,客户端通常不知道反向代理的存在。反向代理隐藏了后端的真实服务器,对外表现为单一入口点。客户端无需知道后端的具体结构,所有请求都直接发送给反向代理服务器。后端服务器处理请求并将响应返回给反向代理服务器,反向代理服务器再将响应返回给客户端。
Nginx 主要用于反向代理场景,但也可以通过特定配置实现正向代理功能
6、使用“反向代理服务器”的优点是什么?
隐藏服务器:反向代理服务器可以隐藏后端服务器的存在和特征,这有助于提高安全性,因为外部用户无法直接访问后端服务器。负载均衡:反向代理可以作为负载均衡器,将流量分配到多个后端服务器,这样可以提高网站的可用性和扩展性。缓存静态内容:反向代理服务器可以缓存静态内容,如图片、CSS 和 JavaScript 文件等,这样可以减少后端服务器的负载并提高响应速度。SSL 终端:反向代理服务器可以处理 SSL/TLS 加密,这样可以减轻后端服务器的加密负担。
7、Nginx的优缺点?
优点:
高性能和高并发:Nginx 能够处理大量的并发连接,而内存消耗相对较小,这使得它在高流量场景下表现出色。静态文件处理:Nginx 在处理静态文件方面非常高效,它能够快速地提供图片、CSS、JavaScript 等静态资源。负载均衡:Nginx 可以作为负载均衡器,将流量分配到多个后端服务器,这样可以提高网站的可用性和扩展性。
动态处理能力:Nginx 在处理动态内容方面相对较弱,它更适合作为静态资源的服务器和反向代理。对于需要复杂动态处理的应用,可能需要与其他应用服务器(如 PHP、Node.js)配合使用。
8、Nginx应用场景?
HTTP 服务器:Nginx 可以作为 HTTP 服务器独立提供 HTTP 服务,适用于静态网站托管。反向代理和负载均衡:Nginx 可以作为反向代理服务器,将请求转发到后端服务器,并支持负载均衡,这对于高流量网站和应用来说非常重要。API 网关:Nginx 可以配置为 API 网关,对每个接口服务进行拦截和路由,提供额外的安全层和流量控制。邮件代理:Nginx 还可以作为邮件代理服务器,处理邮件传输。
9、Nginx配置文件nginx.conf有哪些属性模块?
events:定义了事件处理的配置,如工作连接数 worker_connections。
http:定义了 HTTP 服务器的配置,包括文件类型、默认类型、连接超时等。
server:定义了虚拟主机的配置,可以包含多个 server 块,每个块定义了一个虚拟主机的设置。
location:定义了请求的匹配和处理规则,可以根据 URI、正则表达式等匹配请求,并指定处理方式。
upstream:定义了负载均衡的配置,可以指定多个后端服务器,并设置负载均衡策略。
10、如何用Nginx解决前端跨域问题?
Nginx 可以通过配置 CORS(跨源资源共享)头部来解决前端跨域问题。以下是配置 CORS 的步骤:
在 server 或 location 块中,使用 add_header 指令添加 Access-Control-Allow-Origin 头部,指定允许访问的源。
如果需要,还可以添加 Access-Control-Allow-Methods 头部,指定允许的 HTTP 方法。
对于需要凭证的请求,可以添加 Access-Control-Allow-Credentials 头部。
11、Nginx虚拟主机怎么配置?
在 Nginx 中配置虚拟主机主要涉及 server 块的设置。以下是配置虚拟主机的步骤:定义 server 块:每个 server 块定义了一个虚拟主机的配置。
设置监听端口:使用 listen 指令设置服务器监听的端口,通常是 80(HTTP)和 443(HTTPS)。
设置服务器名称:使用 server_name 指令设置虚拟主机的域名。
定义 location 块:在 server 块内部定义 location 块,设置请求的处理规则。
设置根目录:使用 root 指令设置网站内容的根目录。
设置默认首页:使用 index 指令设置默认首页文件。
12、location的作用是什么?
location 指令在 Nginx 配置中扮演着核心角色,它定义了如何处理进入 Nginx 的 HTTP 请求。location 块可以匹配不同的 URI、正则表达式或指定的字符串,从而允许对特定的请求路径应用不同的处理规则。
精确匹配:使用 = 符号进行精确匹配,例如 location = / 匹配根路径。
字符串开头匹配:使用 ^~ 符号匹配以特定字符串开头的 URI。
正则表达式匹配:使用 ~ 或 ~* 符号进行正则表达式匹配,其中 ~ 是区分大小写的,而 ~* 是不区分大小写的。
通用匹配:使用 / 符号进行通用匹配,作为最后的选择,如果其他匹配都未成功,请求将被这个 location 块处理。
13. 如何配置Nginx实现负载均衡?常见的算法有哪些?
Nginx 支持多种负载均衡策略,包括但不限于:
- 轮询(Round Robin):默认方式,依次分配请求到各后端服务器 ty-reference。
- 加权轮询(Weighted Round Robin):根据权重分配请求,权重越大分配比例越高 ty-reference。
- IP Hash:基于客户端 IP 地址的哈希值分配请求,保证同一客户端总是被定向到同一台后端服务器 ty-reference。
- 最小连接数(Least Connections):将请求分发给当前连接数最少的服务器 ty-reference。
二、配置与调优
14. location匹配规则优先级(=、^、、~*、无符号)
Nginx 的 location
匹配遵循特定顺序:
=
:精确匹配,只有完全匹配路径才会生效。^~
:前缀匹配,一旦匹配成功则不再尝试正则表达式匹配。~
或~*
:区分大小写的正则匹配和不区分大小写的正则匹配。- 普通前缀匹配:最长前缀匹配原则
15. 如何实现URL重写(rewrite)?举例说明
Nginx 的 rewrite
指令允许你修改请求 URI,常用于 URL 重定向或内部转发:
server {rewrite ^/old-page/(.*)$ /new-page/$1 permanent; # 301永久重定向rewrite ^/user/(\d+)$ /user/profile?id=$1 last; # 内部转发
}
16. 如何限制Nginx的并发连接数?
http {# 定义限制区域:以客户端IP为键,分配10MB内存存储状态limit_conn_zone $binary_remote_addr zone=addr:10m;server {location / {# 每个IP同时最多允许100个连接limit_conn addr 100;# 超出限制返回503错误limit_conn_status 503;}}
}
17. 如何配置HTTPS?SSL证书如何加载?
server {listen 443 ssl;server_name example.com;# SSL证书路径(PEM格式)ssl_certificate /etc/nginx/ssl/example.com.crt;ssl_certificate_key /etc/nginx/ssl/example.com.key;# 优化SSL配置ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;ssl_prefer_server_ciphers on;ssl_session_cache shared:SSL:10m;ssl_session_timeout 10m;
}
18、Nginx配置高可用性怎么配置?
配置 Nginx 以实现高可用性主要涉及确保 Nginx 能够处理后端服务器的故障,并在必要时将流量重定向到健康的服务器。以下是一些关键的配置步骤:定义多个后端服务器:在 upstream 块中定义多个服务器,以便在一个服务器失败时有备用服务器可用。
设置超时参数:配置 proxy_connect_timeout、proxy_send_timeout 和 proxy_read_timeout 指令,以便在后端服务器无响应时及时失败转移。
使用 max_fails 和 fail_timeout:配置 max_fails 指令来设置在多长时间内允许多少次失败,以及 fail_timeout 指令来设置服务器失败后应该被排除在外的时间。
三、故障排查与性能优化
19. Nginx的access_log和error_log的作用是什么?如何分析日志?
access_log:记录客户端请求信息,如 IP、时间、请求方法、状态码、响应大小。示例日志格式:192.168.1.1 - - [10/Oct/2023:14:30:01 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0"
常用分析命令:
error_log:记录 Nginx 运行时的错误信息(如配置错误、后端超时、权限问题)。日志级别:debug | info | notice | warn | error | crit(默认 error)。# 实时查看访问日志
tail -f /var/log/nginx/access.log# 统计状态码为502的请求
grep ' 502 ' /var/log/nginx/access.log | awk '{print $1, $7}'# 查找错误日志中的超时错误
grep 'upstream timed out' /var/log/nginx/error.log
20. 502 Bad Gateway错误可能的原因?如何排查?
可能原因:后端服务未启动或崩溃。反向代理配置错误(如后端地址错误、端口未监听)。后端服务处理超时(Nginx 的 proxy_read_timeout 设置过短)。防火墙或网络问题导致 Nginx 无法连接后端。
排查步骤:检查Nginx error_log:grep "502" /var/log/nginx/error.log。验证后端服务状态:curl -v http://backend-server:port。检查网络连通性:telnet backend-server port 或 nc -zv backend-server port。
四、底层原理(加分项)
21. Nginx为什么比Apache更适合高并发场景?
架构模型:Apache:多进程/多线程模型(如 prefork、worker),每个连接占用一个线程,资源消耗高。Nginx:事件驱动 + 异步非阻塞模型,单个 Worker 处理数千连接,资源占用低。
内存消耗:Apache:每个连接约消耗 2MB~8MB 内存。Nginx:每个连接约消耗 2.5KB 内存。
22. 什么是惊群问题(Thundering Herd)?Nginx如何解决?
问题描述:多个进程/线程同时监听同一端口,当新连接到达时,所有进程被唤醒竞争资源,导致 CPU 资源浪费。Nginx 解决方案:使用 accept_mutex 锁(默认开启):同一时间只有一个 Worker 进程监听端口。当有新连接时,获得锁的 Worker 处理连接,其他 Worker 继续处理现有请求。
五、实战场景
23. 如何用Nginx实现动静分离?
server {# 静态资源(图片、CSS、JS)location ~* \.(jpg|png|css|js)$ {root /data/static;expires 30d; # 客户端缓存30天access_log off; # 关闭日志减少磁盘IO}# 动态请求(API)location /api {proxy_pass http://backend_server;proxy_set_header Host $host;}
}
24. 如何限制某个IP的访问频率?
http {# 定义限流区域:每秒10个请求(10r/s),突发允许20个请求limit_req_zone $binary_remote_addr zone=ip_limit:10m rate=10r/s;server {location / {limit_req zone=ip_limit burst=20 nodelay;# nodelay表示突发请求立即处理,不延迟}}
}
六、扩展问题
25. Nginx如何实现热部署(Reload)?
流程:执行 nginx -s reload 向 Master 进程发送 SIGHUP 信号。Master 检查新配置文件语法是否正确。若配置正确,启动新的 Worker 进程,并逐步关闭旧的 Worker。旧 Worker 处理完当前请求后退出,实现无缝切换。
相关文章:
Nginx 运维开发高频面试题详解
一、基础核心问题 原文链接:https://blog.csdn.net/weixin_51146329/article/details/142963853 1、什么是Nginx? Nginx 是一个高性能的 HTTP 和反向代理服务器,它以轻量级和高并发处理能力而闻名。Nginx 的反向代理功能允许它作为前端服务…...
JVM运行时数据区域-附面试题
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域 有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是 依赖用户线程的启动和结束而建立和销毁。 1. 程序计…...
DeepSeek本地部署详细指南
DeepSeek本地部署详细指南 随着人工智能技术的飞速发展,本地部署大模型的需求也日益增加。DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私。以下是…...
Debian 10 中 Linux 4.19 内核在 x86_64 架构上对中断嵌套的支持情况
一、中断嵌套的定义与原理 中断嵌套是指在一个中断处理程序(ISR)正在执行的过程中,另一个更高优先级的中断请求到来,系统暂停当前中断处理程序,转而处理新的高优先级中断。处理完高优先级中断后,系统返回到原来的中断处理程序继续执行。这种机制允许系统更高效地响应紧急…...
C语言:深入了解指针1
内存和地址 1. 酒店房间类比内存和地址 场景描述 把计算机的内存想象成一家酒店,每个房间就是一个内存单元,每个房间都有一个唯一的房间号,这个房间号就相当于内存地址。房间里可以存放客人的行李等物品,这些物品就好比存储在内…...
【AI】探索自然语言处理(NLP):从基础到前沿技术及代码实践
Hi ! 云边有个稻草人-CSDN博客 必须有为成功付出代价的决心,然后想办法付出这个代价。 目录 引言 1. 什么是自然语言处理(NLP)? 2. NLP的基础技术 2.1 词袋模型(Bag-of-Words,BoWÿ…...
游戏引擎 Unity - Unity 下载与安装
Unity Unity 首次发布于 2005 年,属于 Unity Technologies Unity 使用的开发技术有:C# Unity 的适用平台:PC、主机、移动设备、VR / AR、Web 等 Unity 的适用领域:开发中等画质中小型项目 Unity 适合初学者或需要快速上手的开…...
文本复制兼容方案最佳实现落地。
文章目录 一、navigator.clipboard.writeText二、方案落地总结 一、navigator.clipboard.writeText navigator.clipboard.writeText 是一个Web API,它允许网页脚本将文本数据写入用户的系统剪贴板。这个API是异步的,并且设计用于提高安全性和用户体验&a…...
LabVIEW如何高频采集温度数据?
在LabVIEW中进行高频温度数据采集时,选择合适的传感器(如热电偶或热电阻)和采集硬件是关键。下面是一些建议,帮助实现高效的温度数据采集: 1. 传感器选择: 热电偶(Thermocouple)&am…...
AI智慧社区--人脸识别
前端 人脸的采集按钮: 首先对于选中未认证的居民记录,进行人脸采集 前端的按钮 <el-form-item><el-button v-has"sys:person:info" type"info" icon"el-icon-camera" :disabled"ids.length < 0" …...
C++11—右值引用
目录 简介 左值和右值 左值 右值 右值引用 生命周期 引用折叠 实际应用 移动语义 移动构造函数 移动赋值运算符 完美转发 简介 之前我们曾学习过引用叫左值引用,但那是C98的,在C11中新增了一种引用叫右值引用。右值引用主要用于支持移动语…...
Workbench 中的热源仿真
探索使用自定义工具对移动热源进行建模及其在不同行业中的应用。 了解热源动力学 对移动热源进行建模为各种工业过程和应用提供了有价值的见解。激光加热和材料加工使用许多激光束来加热、焊接或切割材料。尽管在某些情况下,热源 (q) 不是通…...
Windows11 不依赖docker搭建 deepseek-R1 1.5B版本(附 Open WebUi搭建方式)
零、前言 过年这几天发现 DeepSeek 非常火,试用了一下发现确实不错。与豆包、kimi、perplexity 这些相比完全不是一个次元的存在,特别是用ta写文章的时候体验非常好。所以试着自己搭一个环境。 一、安装 Ollama和DeepSeek-R1 我的安装方式很简单…...
Error: Expected a mutable image
你的函数用了不支持的图片格式比如我的人脸检测,本来要RGB565我却用JPEG所以报错...
【4Day创客实践入门教程】Day2 探秘微控制器——单片机与MicroPython初步
Day2 探秘微控制器——单片机与MicroPython初步 目录 Day2 探秘微控制器——单片机与MicroPython初步MicroPython语言基础开始基础语法注释与输出变量模块与函数 单片机基础后记 Day0 创想启程——课程与项目预览Day1 工具箱构建——开发环境的构建Day2 探秘微控制器——单片机…...
代码随想录算法训练营Day51 | 101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿
文章目录 101.孤岛的总面积思路与重点 102.沉没孤岛思路与重点 103.水流问题思路与重点 104.建造最大岛屿思路与重点 101.孤岛的总面积 题目链接:101.孤岛的总面积讲解链接:代码随想录状态:直接看题解了。 思路与重点 nextx或者nexty越界了…...
网络基础
协议 协议就是约定 网络协议是协议中的一种 协议分层 协议本身也是软件,在设计上为了更好的模块化,解耦合,也是设计成为层状结构的 两个视角: 小白:同层协议,直接通信 工程师:同层协议&…...
利用Spring Batch简化企业级批处理应用开发
1. 引言 1.1 批处理的重要性 在现代企业系统中,批处理任务用于处理大量数据,如报表生成、数据迁移、日终结算等。这些任务通常不需要实时响应,但需要高效、可靠地完成。批处理可以显著提高系统性能,减少实时系统的负载,并确保数据的完整性和一致性。 1.2 Spring Batch简…...
Python - pyautogui库 模拟鼠标和键盘执行GUI任务
安装库: pip install pyautogui 导入库:import pyautogui 获取屏幕尺寸: s_width, s_height pyautogui.size() 获取鼠标当前位置: x, y pyautogui.position() 移动鼠标到指定位置(可以先使用用上一个函数调试获取当…...
UE求职Demo开发日志#19 给物品找图标,实现装备增加属性,背包栏UI显示装备
1 将用到的图标找好,放一起 DataTable里对应好图标 测试一下能正确获取: 2 装备增强属性思路 给FMyItemInfo添加一个枚举变量记录类型(物品,道具,装备,饰品,武器)--> 扩展DataT…...
【PyQt】lambda函数,实现动态传递参数
为什么需要 lambda? 在 PyQt5 中,clicked 信号默认会传递一个布尔值(表示按钮是否被选中)。如果我们希望将按钮的文本内容传递给槽函数,需要通过 lambda 函数显式传递参数。 这样可以实现将按钮内容传递给槽函数&…...
Unity 2D实战小游戏开发跳跳鸟 - 跳跳鸟碰撞障碍物逻辑
在有了之前创建的可移动障碍物之后,就可以开始进行跳跳鸟碰撞到障碍物后死亡的逻辑,死亡后会产生一个对应的效果。 跳跳鸟碰撞逻辑 创建Obstacle Tag 首先跳跳鸟在碰撞到障碍物时,我们需要判定碰撞到的是障碍物,可以给障碍物的Prefab预制体添加一个Tag为Obstacle,添加步…...
LeetCode:121.买卖股票的最佳时机1
跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的! 代码随想录 LeetCode:121.买卖股票的最佳时机1 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票…...
DeepSeek-R1 论文. Reinforcement Learning 通过强化学习激励大型语言模型的推理能力
论文链接: [2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning 实在太长,自行扔到 Model 里,去翻译去提问吧。 工作原理: 主要技术,就是训练出一些专有用途小模型&…...
SQL索引优化_提高系统响应速度的秘诀
1. 引言 1.1 索引的重要性 在数据库管理系统中,索引是提升查询性能的关键工具。合理的索引设计可以显著减少查询时间,提高系统的响应速度,从而改善用户体验。然而,不恰当的索引使用可能会适得其反,增加写操作的开销并导致性能下降。 1.2 文章目标与结构 本文旨在介绍如…...
MoonBit 编译器(留档学习)
MoonBit 编译器 MoonBit 是一个用户友好,构建快,产出质量高的编程语言。 MoonBit | Documentation | Tour | Core This is the source code repository for MoonBit, a programming language that is user-friendly, builds fast, and produces high q…...
基于微信小程序的酒店管理系统设计与实现(源码+数据库+文档)
酒店管理小程序目录 目录 基于微信小程序的酒店管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 (1) 用户信息管理 (2) 酒店管理员管理 (3) 房间信息管理 2、小程序序会员模块的实现 (1)系统首页 ÿ…...
重生之我在异世界学编程之C语言:深入指针篇(上)
大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文(1)内置数…...
Unity Shader Graph 2D - 跳动的火焰
在游戏中,火焰是一种常见的特效。通常来讲火焰特效通过粒子系统的方式实现的相对较多,本文将通过Shader Graph的方式来实现一种不同的火焰效果。 那么怎么实现呢 首先创建一个名为Fire的Shader Graph文件,然后创建一个名为M_Fire的材质球。 …...
CoRAG 来自微软与人大的创新RAG框架技术
微软与人大合作开发的CoRAG(Chain-of-Retrieval Augmented Generation)是一种创新的检索增强生成(RAG)框架,旨在通过模拟人类思考方式来提升大语言模型(LLM)在复杂问题上的推理和回答能力。以下是对CoRAG的深度介绍: 1. CoRAG的核心理念 CoRAG的核心思想是通过动态调…...
MySQL的GROUP BY与COUNT()函数的使用问题
在MySQL中,GROUP BY和 COUNT()函数是数据聚合查询中非常重要的工具。正确使用它们可以有效地统计和分析数据。然而,不当的使用可能会导致查询结果不准确或性能低下。本文将详细讨论 GROUP BY和 COUNT()函数的使用方法及常见问题,并提供相应的…...
DS常识问答:人民币升值贬值是什么回事
好的!我用一个简单的比喻来解释,就像用苹果换橘子一样: 1. **汇率是什么?** 假设你有人民币,别人有美元。汇率就是你们交换的“价格”。比如今天1美元能换7块人民币,明天可能变成7.5块或者6.5块&…...
docker直接运行arm下的docker
运行环境是树莓派A 处理器是 arm32v6 安装了docker,运行lamp 编译安装php的时候发现要按天来算,于是用电脑vm下的Ubuntu系统运行arm的docker 然后打包到a直接导入运行就可以了 第一种方法 sudo apt install qemu-user-static 导入直接运行就可以了…...
机器学习--概览
一、机器学习基础概念 1. 定义 机器学习(Machine Learning, ML):通过算法让计算机从数据中自动学习规律,并利用学习到的模型进行预测或决策,而无需显式编程。 2. 与编程的区别 传统编程机器学习输入:规…...
人机交互系统实验三 多通道用户界面
实验目的和要求 1)了解常见的多通道用户界面 2)查找资料,熟悉一种多通道用户界面并写出综述 实验环境 Windows10 实验内容与过程 (一) 实验内容: 要求上网查找资料,熟悉一种多通道用户界面并写出综述,可以是眼动跟踪、手势识别、 三维…...
Python(Pandas)数据分析学习
1.Pandas基本构成 引入Pandas import pandas as pd 1.Series 行 对应Excel中的一行数据,一维数据 定义Series # 第一个参数是具体数据 # 第二个参数的对应的索引下标 # 第三个参数的行名称 data pd.Series([1,2,3,4,5], index[a,b,c,d,e], namedata) print(d…...
JavaScript系列(53)--内存管理与垃圾回收机制详解
JavaScript内存管理与垃圾回收机制详解 🧹 今天,让我们深入探讨JavaScript的内存管理与垃圾回收机制。理解这些机制对于编写高性能、无内存泄漏的JavaScript应用至关重要。 内存管理基础概念 🌟 💡 小知识:JavaScrip…...
每日一题——用两个栈实现队列
用两个栈实现队列 题目描述数据范围示例 代码实现1. 代码思路push 操作:pop 操作: 2. 代码实现3. 代码解析4. 时间复杂度与空间复杂度 总结 题目描述 用两个栈来实现一个队列,使用 n 个元素来完成 n 次在队列尾部插入整数(push)和 n 次在队列…...
DeepSeek与OpenAI:谁是AI领域的更优选择?
在人工智能领域,DeepSeek和OpenAI是两个备受瞩目的玩家。尽管OpenAI凭借其强大的GPT系列模型在全球范围内获得了广泛的认可,但DeepSeek凭借其独特的技术优势和创新理念,正在逐渐成为许多企业和开发者的新选择。本文将对DeepSeek和OpenAI进行详…...
【爬虫】JS逆向解决某药的商品价格加密
⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据开发、数据分析等。 🐴欢迎小伙伴们点赞👍🏻、收藏⭐️、…...
deepseek v3 搭建个人知识库
目录 deepseek-r1本地部署,这个比较好,推荐 Chatbox连接ollama服务 知乎教程,需要注册: deepseek-r1本地部署,这个比较好,推荐 公司数据不泄露,DeepSeek R1本地化部署web端访问个人知识库搭建…...
ETCD集群证书生成
安装cfssl工具配置CA证书请求文件创建CA证书创建CA证书策略配置etcd证书请求文件生成etcd证书 继续上一篇文章《负载均衡器高可用部署》下面介绍一下etcd证书生成配置。其中涉及到的ip地址和证书基本信息请替换成你自己的信息。 安装cfssl工具 下载cfssl安装包 https://github…...
【软件测试项目实战】淘宝网订单管理功能
一、测试功能模块分析 选择淘宝网订单管理功能进行测试,核心子功能包含: 订单创建(商品结算、地址选择)订单状态变更(待付款、已付款、已发货、已收货、退款中)订单修改(地址修改、商品数量修…...
扩散模型(一)
在生成领域,迄今为止有几个主流的模型,分别是 GAN, VAE,Flow 以及 Diffusion 模型。 GAN:GAN 的学习机制是对抗性学习,通过生成器和判别器的对抗博弈来进行学习,这种竞争机制促使生成器不断提升生成能力&a…...
EF Core与ASP.NET Core的集成
目录 分层项目中EF Core的用法 数据库的配置 数据库迁移 步骤汇总 注意: 批量注册上下文 分层项目中EF Core的用法 创建一个.NET类库项目BooksEFCore,放实体等类。NuGet:Microsoft.EntityFrameworkCore.RelationalBooksEFCore中增加实…...
深入解析“legit”的地道用法——从俚语到正式表达:Sam Altman用来形容DeepSeek: legit invigorating(真的令人振奋)
深入解析“legit”的地道用法——从俚语到正式表达 一、引言 在社交媒体、科技圈甚至日常对话中,我们经常会看到或听到“legit”这个词。比如最近 Sam Altman 在 X(原 Twitter)上发的一条帖子中写道: we will obviously deliver …...
玩转ChatGPT:DeepSeek测评(科研思路梳理)
一、写在前面 DeepSeek-R1出圈了,把OpenAI的o3-mini模型都提前逼上线了(还免费使用)。 都号称擅长深度推理,那么对于科研牛马的帮助有多大呢? 我连夜试一试。 二、科研思路梳理 有时候我们牛马们做了一堆结果以后&…...
实验9 JSP访问数据库(二)
实验9 JSP访问数据库(二) 目的: 1、熟悉JDBC的数据库访问模式。 2、掌握预处理语句的使用 实验要求: 1、使用Tomcat作为Web服务器 2、通过JDBC访问数据库,实现增删改查功能的实现 3、要求提交实验报告,将代…...
CMake项目编译与开源项目目录结构
Cmake 使用简单方便,可以跨平台构建项目编译环境,尤其比直接写makefile简单,可以通过简单的Cmake生成负责的Makefile文件。 如果没有使用cmake进行编译,需要如下命令:(以muduo库echo服务器为例)…...
PyCharm中使用Ollama安装和应用Deepseek R1模型:完整指南
引言 人工智能和大型语言模型正在改变我们与技术交互的方式。Deepseek R1是一个强大的AI模型,而Ollama则是一个让我们能够轻松在本地运行这些模型的工具。本文将指导您如何使用Ollama安装Deepseek R1模型,并在PyCharm中创建一个简单的聊天应用。 © ivwdcwso (ID: u0121…...