Nginx(详解以及如何使用)
目录
1. 什么是Nginx?
2. 为什么使用nginx?
3. 安装nginx
3.1?安装nginx的依赖插件
3.2 下载nginx
?3.3?创建一个目录作为nginx的安装路径
?3.4?解压
?3.5?进入解压后的目录
3.6?指定nginx的安装路径
?3.7?编译和安装nginx
3.8 启动nginx
?3.9?访问nginx
?4.?nginx目录结构
?5.nginx配置文件
6. nginx的核心功能
6.1 nginx反向代理功能
6.2 nginx的负载均衡
6.3 nginx动静分离
7. nginx的HA高可用的搭建
7.1 高可用的原理–keepalived
7.2 搭建ha高可用
1. 什么是Nginx?
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
并发能力: 50,000 。
2. 为什么使用nginx
- Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数。
- Nginx支持热部署,启动简单,可以做到7*24不间断运行。几个月都不需要重新启动。
3. 安装nginx
nginx可以独立安装在一台服务器–也可以和项目在同一个服务器。
3.1安装nginx的依赖插件
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
如果yum这个命令不能用,请看这篇:Linux查看端口号命令以及yum源无法使用的解决方法-CSDN博客
3.2 下载nginx
nginx: download
3.3创建一个目录作为nginx的安装路径
mkdir /usr/nginx
3.4解压
tar -zxvf nginx-1.26.1.tar.gz
3.5进入解压后的目录
cd nginx-1.26.1
3.6指定nginx的安装路径
./configure --prefix=/usr/nginx
3.7编译和安装nginx
make install
3.8 启动nginx
在sbin目录下操作或者配置环境使在任何地方都可以使用:
nginx 启动
nginx -s stop 关闭
nginx -s reload 重新加载配置文件
3.9访问nginx
http://nginx所在的ip:nginx的端口/
默认端口号:80
4.nginx目录结构
5.nginx配置文件
在/usr/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;server {listen 81;server_name localhost;location /{root static;index main.html;}}#gzip on;server {listen 80; # 监听的端口号server_name localhost; # 监听的主机名.域名#charset koi8-r;#access_log logs/host.access.log main;# 资源/ location / {root html; #根目录index index.html main.html; # 资源}#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;# }#}}
6. nginx的核心功能
6.1 nginx反向代理功能
正向代理
代理的为客户端,对于服务器不知道真实客户的信息。例如:翻墙软件。
反向代理服务器
代理的为服务器端。对于客户来说不知道服务器的信息。例如: nginx。
项目部署例:
准备web项目
准备nginx
启动web项目:
配置nginx:
server {listen 82;server_name localhost;location /{# 代理的服务器地址proxy_pass http://192.168.111.132:8080;}}
启动ngin:
./usr/nginx/sbin/nginx
6.2 nginx的负载均衡
负载均衡(Load Balance [4]):其意思就是把请求分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
web项目必须搭建的为集群模式。
web服务器项目至少搭建2台以上。
运行两个web工程项目:
springboot项目:
运行springboot项目:java -jar xxx.jar
注意: 端口号别忘记放行。
配置nginx完成负载均衡:
重新加载nginx配置
/usr/nginx/sbin/nginx -s reload
测试
负载均衡的策略
默认为轮询。
权重策略: 服务器硬件配置不同时。
ip_hash策略: 根据访问者客户的ip固定访问对应的web服务器。
花钱买第三方策略插件。
6.3 nginx动静分离
动:动态资源(接口)
静:静态资源 (css js image)。
分离: 之前我们把静态资源和动态资源全部放在web服务器下。 把静态资源放入nginx服务器下。动态资源web服务器下。
7. nginx的HA高可用的搭建
7.1 高可用的原理–keepalived
7.2 搭建ha高可用
俩台机器:
安装keepalived:
yum install -y keepalived
默认安装在/etc/keepalived下
修改keepalived.conf配置文件:
global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.loc# ip的地址smtp_ server 192.168.111.188smtp_connect_timeout 30router_id 192.168.111.188
}
# 执行脚本
vrrp_script chk_http_port {script "/usr/local/src/nginx_check.sh"interval 2 # 每2s执行一次该脚本weight -20 # keepalive宕机 权重-20 优先级
}vrrp_instance VI_1 {state MASTER # 角色interface ens33 # 网卡名virtual_router_id 51 # id 保证主从相同priority 100 # 优先级 主节点大于从节点advert_int 1authentication {auth type PASSauth pass 1111}virtual_ipaddress { 192.168.111.50 # 虚拟ip. 使用逗号隔开}track_script {chk_http_port # 追踪nginx脚本}}
从节点
global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.loc# ip的地址smtp_ server 192.168.111.189smtp_connect_timeout 30router_id 192.168.111.189
}
# 执行脚本
vrrp_script chk_http_port {script "/usr/local/src/nginx_check.sh"interval 2 # 每2s执行一次该脚本weight -20 # keepalive宕机 权重-20 优先级
}vrrp_instance VI_1 {state BACKUP # 角色interface ens33 # 网卡名virtual_router_id 51 # id 保证主从相同priority 90 # 优先级 主节点大于从节点advert_int 1authentication {auth type PASSauth pass 1111}virtual_ipaddress { 192.168.111.50 # 虚拟ip. 使用逗号隔开}track_script {chk_http_port # 追踪nginx脚本}}
nginx_check.sh
#!/bin/bash
# 检查是否开启nginx---统计nginx进程的个数
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];thenpkill -9 keepalived
fiA=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then #如果nginx没有启动就启动nginx /app/nginx/sbin/nginx #重启nginxif [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #nginx重启失败,则停掉keepalived服务,进行VIP转移pkill keepalived fi
fi
修改权限: chmod 777 nginx_check.sh
启动:
nginx
keepalived systemctl start|stop keepalived
相关文章:
Nginx(详解以及如何使用)
目录 1. 什么是Nginx? 2. 为什么使用nginx? 3. 安装nginx 3.1?安装nginx的依赖插件 3.2 下载nginx ?3.3?创建一个目录作为nginx的安装路径 ?3.4?解压 ?3.5?进入解压后的目录 3.6?指定nginx的安装路径 ?3.7?编译和安装nginx 3.8 启动nginx ?…...
java每日精进 2.20 MQ相关复健
在 RabbitMQ 中,消息消费者对消息的签收(acknowledgment)可以通过三种方式进行管理:自动签收、手动签收 和 拒绝签收。它们主要控制消费者如何处理消息确认和消息的重新排队。下面详细讲解它们的区别,并通过代码示例展…...
微信小程序地图map全方位解析
微信小程序地图map全方位解析 微信小程序的 <map> 组件是一个功能强大的工具,可以实现地图展示、定位、标注、路径规划等多种功能。以下是全方位解析微信小程序地图组件的知识点: 一、地图组件基础 1. 引入 <map> 组件 在页面的 .wxml 文…...
Windows隐藏窗口/开机自启动
目录 使用Start-Process命令控制窗口状态 设置程序开机自启动 使用Start-Process命令控制窗口状态 隐藏窗口运行程序 使用Start-Process命令时,可以通过-WindowStyle Hidden参数让程序在后台运行,窗口不可见。例如: Start-Process D:\note…...
量子计算的威胁,以及企业可以采取的措施
当谷歌、IBM、Honeywell和微软等科技巨头纷纷投身量子计算领域时,一场技术军备竞赛已然拉开帷幕。 量子计算虽能为全球数字经济带来巨大价值,但也有可能对相互关联的系统、设备和数据造成损害。这一潜在影响在全球网络安全领域引起了强烈关注。也正因如…...
日期类(完全讲解版)
1. 类的设计思想 Date 类的设计目的是为了封装和处理日期信息,它提供了对日期的基本操作,如日期加减、日期比较、日期合法性检查等。类中的私有成员 int _year, int _month, int _day 存储了日期的年、月、日。 类的声明和构造 Date 类的声明࿱…...
在线考试系统的公平性和高效性如何保证
随着互联网技术的飞速发展,线上教育已成为现代教育体系中的重要组成部分。而在线考试系统作为线上教育的重要环节,其公平性和高效性成为了广大教育工作者和考生关注的焦点。本文将深入探讨在线考试系统如何保证考试的公平性和高效性,以期为线…...
Spring AI + Ollama 实现调用DeepSeek-R1模型API
一、前言 随着人工智能技术的飞速发展,大语言模型(LLM)在各个领域的应用越来越广泛。DeepSeek 作为一款备受瞩目的国产大语言模型,凭借其强大的自然语言处理能力和丰富的知识储备,迅速成为业界关注的焦点。无论是文本生…...
基于spring的策略模式
集合spring框架的是策略模式,直接上代码 1、接口 public interface PaymentStrategy {//支付接口void pay(double amount);}2、实现类 2.1 实现类一 Component("creditCard") //作为区分的标识 public class CreditCardPayment implements PaymentStr…...
面试编程题
1. 请写出string类的定义,要求有构造函数,析构函数,拷贝,赋值函数。 #include <cstring> #include <algorithm>class String { public:explicit String(const char* str nullptr){if(str){str_ new char[strlen(st…...
AI工具讲解
推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战 目录 模型管理OllamaHugging Face区别 AI模型交互应用程序AnythingLLMCherry Studio AI开发相关Python库 模型管理 Ollama h…...
计算机网络:应用层 —— 动态主机配置协议 DHCP
文章目录 什么是 DHCP?DHCP 的产生背景DHCP 的工作过程工作流程地址分配机制 DHCP 中继代理总结 什么是 DHCP? 动态主机配置协议(DHCP,Dynamic Host Configuration Protocol)是一种网络管理协议,用于自动分…...
基于Spring Boot,结合Redis缓存和RabbitMQ消息队列的站内信系统设计
1. 添加依赖 在pom.xml中添加必要的依赖: <dependencies><!-- Spring Boot Starter Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependen…...
【JAVA:list中再定义一个list对象,循环赋值不同的list数据,出现追加重复数据问题】
问题描述: list中再定义一个list对象,循环赋值不同的list数据,结果全部都累加到每条数据中了,每条数据中都出现重复数据。 问题解决: 1.创建树结构方法信息 2.创建一个新的 List 对象,避免引用问题 3.使…...
系统思考—价格策略
“我们之所以犯错,是因为我们没有意识到自己处在错误的思维模式中。” —— 卡尔波普尔(哲学家,批判理性主义的创始人) 最近和小伙伴们聊到定价这个变量,深刻感受到系统思考的强大力量。记得在MIT经典沙盘《人民航空经…...
提升信息检索准确性和效率的搜索技巧
一、基础技巧 精准关键词 避免长句子,提取核心关键词(如用“光合作用 步骤”代替“请告诉我光合作用的具体过程”)。 同义词替换:尝试不同表达(如“AI 发展史” vs “人工智能 历史”)。 排除干扰词 使用…...
第3章:在LangChain中如何设置模型参数
本章主要介绍了如何在LangChain4j中配置和调整模型参数,以满足不同的需求和优化模型的表现; 在Java开发框架中通过LangChain4j调用LLM,可以如何设置模型参数,以及对应参数的详细说明,如此以来你可以掌握在智能体开发过…...
java | MyBatis-plus映射和golang映射对比
文章目录 Java实体类和数据库的映射1.默认驼峰命名规则2.自定义字段映射3.关闭驼峰命名规则4.JSON序列化映射 Golang1. 结构体与表的映射2. 字段与列的映射3. 关联关系映射4. 其他映射相关标签 这篇也是做数据库映射方面的对比: Java 实体类和数据库的映射 1.默认…...
CMDB与ITIL的关系:如何通过CMDB实现IT服务管理?
在数字化转型的浪潮中,企业IT系统的复杂性呈指数级增长。如何高效管理海量IT资源、快速响应业务需求,成为每个企业必须面对的挑战。而CMDB(配置管理数据库)和ITIL(信息技术基础设施库)的结合,正…...
【python】网页批量转PDF
安装wkhtmltopdf 网站:wkhtmltopdf wkhtmltopdf http://www.baidu.com/ D:website1.pdf 安装pdfkit库 pip install pdfkit 批量转换代码 import os import pdfkit path_wkthmltopdf rE:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe config pdfkit.configu…...
开题报告——基于Spring Boot的垃圾分类预约回收系统
关于本科毕业设计(论文)开题报告的规定 为切实做好本科毕业设计(论文)的开题报告工作,保证论文质量,特作如下规定: 一、开题报告是本科毕业设计(论文)的必经过程,所有本科生在写作毕业设计(论文)之前都必须作开题报告。 二、开题报告主要检验学生对专业知识的驾驭能…...
第1章大型互联网公司的基础架构——1.10 其他NoSQL数据库
这里我们简单介绍一下其他常见的NoSQL数据库及其适用的场景,其中部分数据库会在后续服务设计章节中正式使用时再做详细介绍。 1.10.1 文档数据库 文档数据库的典型代表是MongoDB和CouchDB。**文档数据库普遍采用JSON格式来存储数据,而不是采用僵硬的行…...
大数据治理之solr的体现
大数据治理之solr的体现 一,大数据治理下Solr的作用 在大数据治理的背景下,Solr作为一个高性能的搜索平台,发挥这重要的作用,下面是Solr在大数据治理中的几个关键作用和体现: 数据索引与检索: 高效检索&a…...
【微信小程序开发】元素顶部重叠
微信小程序开发-顶部元素重叠 原因是开启了自定义导航栏,navigationStyle“custom”(app.json) 把这行删掉就好了...
Spring框架基本使用(Maven详解)
前言: 当我们创建项目的时候,第一步少不了搭建环境的相关准备工作。 那么如果想让我们的项目做起来方便快捷,应该引入更多的管理工具,帮我们管理。 Maven的出现帮我们大大解决了管理的难题!! Maven…...
Hadoop一 HDFS分布式文件系统
一 分布式文件存储 了解为什么海量数据需要使用分布式存储技术 100T数据太大,单台服务器无法承担。于是: 分布式服务器集群 靠数量取胜,多台服务器组合,才能Hold住,如下 分布式不仅仅是解决了能存的问题ÿ…...
Windows 图形显示驱动开发-驱动驻留的供应和回收更改
访问非用户分配 对于 Windows 显示驱动程序模型 (WDDM) v2,有关 套餐 和 回收 的要求正在放宽。 用户模式驱动程序不再需要在内部分配上使用套餐和回收。 空闲/挂起的应用程序将使用 Microsoft DirectX 11.1 中引入的 TrimAPI 删除驱动程序内部资源。 API 级别将继…...
【含文档+PPT+源码】基于Python的图书推荐系统的设计与实现
课程简介: 本课程演示的是一款基于python的图书推荐系统的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Python学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行…...
glob 用法技巧
目录 处理大量文件节省内存 匹配多个文件扩展名 遍历多种格式文件 遍历某一个文件: 查找当前目录和子目录 6. 排除特定文件 7. 大小写不敏感匹配 8. 获取绝对路径 9. 处理特殊字符 处理大量文件节省内存 技巧:用 iglob 替代 glob,逐…...
Windows 启动 SSH 服务
Windows 启动 SSH 服务 一、OpenSSH Server 安装 以 Win10 系统为例 打开设置 -> 系统 -> 可选功能 在 添加的功能 查看是否安装了 OpenSSH 服务 或者 OpenSSH Server 如果没有安装,找到 系统->添加可选功能 -> 查看功能->搜索 OpenSSH 服务 ->…...
基于Llama 3.2-Vision的医学报告生成
记录运用大模型解决医学报告实例,仅介绍本地调用的情况。 前情提要 已安装 Python 显存不少于8G(8G设备上测试成功,其他环境可以自行测试)。 需要安装Ollama (Ollama 是一个允许在本地运行多模态模型的平台)。 方式1࿱…...
Freertos学习第一篇-总体概述
目录 1、基础概念1.1、FreeRTOS概念 2、模块学习2.1、任务2.2、调度(Scheduling)2.3、任务间通讯2.4、时间管理2.5、内存管理 3、各模块串联逻辑3.1、任务创建与调度3.2、任务间通讯3.3、时间管理3.4、内存管理 4、示例代码4.1、代码说明 5、学习路线建议…...
Windows系统安装GPU驱动/CUDA/cuDNN
1、驱动安装步骤 1.1下载驱动 通过浏览器访问Download The Official NVIDIA Drivers | NVIDIA 1.2安装驱动 1.3检查 打开【设备管理器】—【显示适配器】 2、CUDA安装步骤 2.1下载CUDA 官网链接CUDA Toolkit 12.4 Update 1 Downloads | NVIDIA 开发者 2.2安装CUDA 3、cuDN…...
Nginx 安装及配置教程(Windows)【安装】
文章目录 一、 Nginx 下载 1. 官网下载2. 其它渠道 二、 Nginx 安装三、 配置四、 验证五、 其它问题 1. 常用命令2. 跨域问题 软件 / 环境安装及配置目录 一、 Nginx 下载 1. 官网下载 安装地址:https://nginx.org/en/download.html 打开浏览器输入网址 htt…...
一只企鹅如何改变世界
一、历史的转折点:一只企鹅如何改变世界 1991年,芬兰大学生Linus Torvalds在邮件列表中写道:“我正在做一个自由的操作系统(只是爱好,不会像GNU那样庞大专业)”。这个后来被称为Linux内核的项目,与GNU项目的结合,点燃了开源运动的燎原之火。 关键演化: 1996年:Tux企…...
linux进程的内存空间映射(段)
Linux进程的内存空间映射 在 Linux 中,每个进程的内存空间是一个虚拟地址空间,操作系统通过内存映射机制(Memory Mapping)将不同的内存区域分配给不同类型的资源和需求。内存空间映射决定了进程如何访问不同类型的内存࿰…...
前端导出word文件,并包含导出Echarts图表等
基础导出模板 const html <html><head><style>body {font-family: Times New Roman;}h1 {text-align: center;}table {border-collapse: collapse;width: 100%;color: #1118FF;font-weight: 600;}th,td {border: 1px solid black;padding: 8px;text-align: …...
武汉火影数字|VR大空间内容制作:开启沉浸式体验新时代
近年来,随着VR技术的飞速发展,VR大空间制作逐渐成为行业的热门话题。它突破传统VR的空间限制,为用户带来了更加自由、沉浸的体验。无论是娱乐、教育还是工业领域,VR大空间制作都在悄然改变我们的生活和工作方式。 什么是VR大空间制…...
【拥抱AI】GPT Researcher的诞生
一、GPT Researcher 研究过程总结 GPT Researcher 是一个开源的自主智能体,旨在通过利用人工智能技术实现高效、全面且客观的在线研究。它通过一系列创新的设计和优化,解决了传统研究工具(如 AutoGPT)中存在的问题,如…...
Mac端homebrew安装配置
拷打了一下午o3-mini-high,不如这位博主的超强帖子,10分钟结束战斗 跟随该文章即可,2025/2/19亲测可行 mac 安装HomeBrew(100%成功)_mac安装homebrew-CSDN博客文章浏览阅读10w次,点赞258次,收藏837次。一直觉得自己写…...
第四篇:开源生态与蒸馏模型的价值
开篇:从单体模型到生态赋能 DeepSeek-R1 的发布不仅是一款推理模型的亮相,更是一个全新生态的起点。在前三篇中,我们剖析了 R1 的诞生背景、技术核心和性能实力,但它的意义远不止于此。2024 年末,DeepSeek 团队不仅开源了 R1-Zero 和 R1 的完整权重,还推出了基于 Qwen 和…...
C语言——深入理解指针(3)
文章目录 字符指针变量数组指针变量数组指针变量是什么?数组指针变量怎么初始化 二维数组传参的本质函数指针变量函数指针变量的创建函数指针变量的使用两段关于函数的有趣代码typedef关键字 函数指针数组转移表第一种写法:第二种写法(函数指…...
CentOS 7 企业级Redis 7部署指南
CentOS 7 企业级Redis 7部署指南 目录导航 一、环境准备 1.1 依赖管理 二、离线安装 2.1 源码编译安装2.2 目录结构规范 三、生产配置 3.1 主配置文件3.2 配置生成脚本 四、系统集成 4.1 Systemd服务文件4.2 服务管理命令 五、安全加固 5.1 网络安全配置5.2 审计配置 六、性能…...
Linux-C/C++《C++/1、C++基础》(C++语言特性、面向对象等)
这里主要介绍概念为主,主要介绍 C与 C 语言中常用的不同点,和一些新的变化。其中不会去说指针、数据类型、变量类型、判断和循环等这些知识,这些和C 语言基本是一样使用的。我们主要学习 C的面向对象编程,对学习 Qt 有很大的帮助。…...
Java-11
淘天集团2025届春季校园招聘在线笔试-研发 1。设有一个顺序共享栈storageArray[70],其中栈X的栈顶指针top1的初值为-1,栈Y的栈顶指针top2的初值为70,通过不断进行入栈操作,直到storageArray数组已满,此时top1 top2 …...
第4章 信息系统架构(四)
4.6 网络架构 网络是信息技术架构中的基础,不仅是用户请求和获取IT信息资源服务的通道,同时也是 信息系统架构中各类资源融合和调度的枢纽。特别是云计算、大数据和移动互联网技术飞速发 展的今天,网络更加成为实现这些技术跨越的重要环节。…...
用C++ Qt实现安卓电池充电动效 | 打造工业级电量控件
一、为什么需要自定义电池控件? 在工业控制、车机系统、智能硬件等领域的UI开发中,电池状态显示是高频出现的UI组件。通过实现一个支持颜色渐变、动态充电动画、警戒阈值提示的电池控件,开发者可以系统掌握以下核心能力: Qt绘图…...
【第二节】C++设计模式(创建型模式)-抽象工厂模式
目录 引言 一、抽象工厂模式概述 二、抽象工厂模式的应用 三、抽象工厂模式的适用场景 四、抽象工厂模式的优缺点 五、总结 引言 抽象工厂设计模式是一种创建型设计模式,旨在解决一系列相互依赖对象的创建问题。它与工厂方法模式密切相关,但在应用…...
自用题库---面试使用
1、css中如何实现水平垂直居中 方法一:flex: display: flex; justify-content: center; align-item: center;方法二:绝对定位margin:auto: position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin:auto;方法三:已…...
【Mysql】我在广州学Mysql 系列—— 有关日志管理的示例
ℹ️大家好,我是练小杰,今天星期四了,明天周五,美好的周末又要到了!!😆 本文是对MySQL日志管理内容进行练习,后续将添加更多相关知识噢,谢谢各位的支持🙏 复习…...