Nginx 安全防护与 HTTPS 部署
目录
一. 核心安全配置
1. 隐藏版本号
2. 限制危险请求方法
3. 请求限制(CC 攻击防御)
4. 防盗链
二. 高级防护
1. 动态黑名单
2. nginx https 配置
2.1 https 概念
2.1.1 https 为什么不安全
2.1.2 安全通信的四大原则
2.1.3 HTTPS 通信原理概述
2.2 nginx 配置 https 证书
2.2.1 使用 openssl 生成证书和私钥
2.2.2 nginx 启用 https
2.2.3 通过浏览器验证
一. 核心安全配置
1. 隐藏版本号
在生产环境中,需要隐藏 Nginx 的版本号,以避免泄漏 Nginx 的版本,使攻击者不能针对特定版本进行攻击。
在 Nginx 全局配置中添加:
server_tokens off; # 关闭版本号显示
2. 限制危险请求方法
禁用 PUT、DELETE、OPTIONS 等非必要 HTTP 方法,减少恶意文件上传 / 删除风险。
修改配置文件
if ($request_method ~* "^(PUT|DELETE|TRACE|OPTIONS)$") {return 405; # 返回Method Not Allowed状态码 }
或针对特定路径限制(如仅允许 GET/POST):
location /api/ {allow_methods GET POST; # 显式允许的方法deny all; }
3. 请求限制(CC 攻击防御)
CC 攻击(Challenge Collapsar 攻击)是一种常见的网络攻击方式,通过大量合法或伪造的小流量请求来耗尽服务器资源,导致正常用户无法访问网站。要在 Nginx 中有效防止 CC 攻击,可以采用多种策略和方法。
CC 攻击,也称为连接数攻击或请求速率限制攻击,通过模拟大量用户访问来消耗服务器资源,从而使得正常用户无法正常访问网站。
(1)使用 Nginx 的 limit_req 模块限制请求速率
通过令牌桶算法限制单 IP 请求速率,防止高频次恶意请求。
编辑配置文件
定义速率限制区域(在
http
块中):http {limit_req_zone $binary_remote_addr zone=cc_limit:10m rate=10r/s; # 单IP每秒10请求,内存区10MB }
$binary_remote_addr
:二进制格式存储 IP(节省内存)rate=10r/s
:平均速率限制(突发请求可通过burst
参数允许)应用限制(在
server
或location
块中):location / {limit_req zone=cc_limit burst=20 nodelay; # 允许突发20个请求,无延迟排队 }
burst
:突发请求缓冲区大小nodelay
:超过平均速率时立即拒绝(非排队等待)
(2) 压力测试验证
使用ab
(Apache Benchmark)或wrk
模拟高频请求
ab -n 1000 -c 50 -k http://your-domain/ # 1000请求,50并发,长连接
验证目标:
- 检查 Nginx 日志(
error.log
)是否有503 Service Temporarily Unavailable
(触发限流)- 通过
curl -I
确认响应状态码,确保正常请求速率被限制在预期范围内(如单 IP 每秒≤10 请求)。
4. 防盗链
防盗链是一种重要的安全设置,旨在防止未经授权的用户盗用网站(静态)资源。盗链行为不仅侵犯了内容创作者的版权,还可能导致原网站带宽和资源的过度消耗,影响正常用户的访问速度和体验。
一般来说,用户浏览一个完整的页面并不是一次性全部传送到客户端的。如果所请求的页面带有图片或其他信息,那么第一个 HTTP 请求传送的是这个页面的文本,然后通过客户端的浏览器对这段文本进行解释执行。如果发现其中还有图片,那么客户端的浏览器会再次发送一条 HTTP请求,当这个请求被处理后这个图片文件才会被传送到客户端,最后浏览器会将图片安放到页面的正确位置,就这样一个完整的页面要经过多次发送 HTTP请求才能够被完整的显示。基于这样的机制,就会产生盗链问题:如果一个网站中没有其页面中所说图片信息,那么它完全可以链接到其他网站的图片信息上。这样,没有任何资源的网站利用了其他网站的资源来展示给浏览者,提高了自己的访问量,而大部分浏览者又不会很容易地发现。一些不良网站为了不增加成本而扩充自己站点内容,经常盗用其他网站的链接。一方面损害了原网站的合法利益,另一方面又加重了服务器的负扭。
二. 高级防护
1. 动态黑名单
动态黑名单是 Nginx 中一种实时拦截恶意请求的安全机制,它允许在不重启服务的情况下,动态更新需要封禁的 IP地址或网段。相比静态配置的 allow/deny指令,动态黑名单更灵活高效,适用于高并发、多变的攻击防护场景。
(1)编辑黑名单配置文件
创建黑名单文件
# 手动添加的固定封禁 IP(每行一个 IP 或 CIDR 段) blacklist 192.168.1.100; blacklist 10.0.0.0/8;
动态生成黑名单(通过脚本提取日志中高频攻击 IP,如每天凌晨更新):
# 示例:从 error.log 中提取触发 403/429 的 IP,频次 > 100 次则加入黑名单 awk '{print $1}' /var/log/nginx/error.log | sort | uniq -c | awk '$1>100 {print "blacklist " $2 ";"}' > /etc/nginx/blacklist.d/dynamic.conf
(2) 编辑主配置文件
在 http
块中引入黑名单,并在 server
块中应用:
http {# 加载黑名单模块blacklist_file /etc/nginx/blacklist.conf; # 固定黑名单blacklist_file /etc/nginx/blacklist.d/*.conf; # 动态生成的黑名单(支持通配符)server {listen 80;server_name mydomain.com;# 在请求处理前检查黑名单if ($blacklisted) { # 模块内置变量,命中黑名单时为 "1"return 403; # 拒绝访问}# 其他配置...} }
(3) 使用封禁 ip 测试访问
添加测试 IP 到黑名单
# 在 blacklist.conf 中临时添加 blacklist 192.168.1.200;
重启 Nginx 使配置生效:
nginx -s reload
使用封禁 IP 访问站点
curl -H "X-Forwarded-For: 192.168.1.200" http://mydomain.com # 预期返回 403 Forbidden(需根据实际代理配置调整请求头)
2. nginx https 配置
2.1 https 概念
HTTPS,全称HyperText Transfer Protocol over Secure Socket Layer,设计初衷是为了保证数据传输安全。http(超文本传输协议)是客户端浏览器与web 服务器之间的通信协议,而 https 协议可以认为是 HTTP + SSL/TLS,在 http 之下 tcp 之上加了ss1一层,用于对应用层数据的加解密。
2.1.1 https 为什么不安全
HTTP 由于是明文传输,主要存在三大风险:窃听风险、篡改风险、冒充风险
窃听风险
中间人可以获取到通信内容,由于内容是明文,所以获取明文后有安全风险
篡改风险
中间人可以篡改报文内容后再发送给对方,风险极大
冒充风险
比如你以为是在和某宝通信,但实际上是在和一个钓鱼网站通信。
2.1.2 安全通信的四大原则
HTTPS 就是为了解决上述三个风险而生的,一般我们认为安全的通信需要包括以下四个原则: 机密性、完整性,身份认证和不可否认。
- 机密性:即对数据加密,解决了窃听风险,因为即使被中间人窃听,由于数据是加密的,他也拿不到明文;
- 完整性:指数据在传输过程中没有被篡改,不多不少,保持原样,中途如果哪怕改了一个标点符号,接收方也能识别出来,从来判定接收报文不合法;
- 身份认证:确认对方的真实身份,即证明“你妈是你妈”的问题,这样就解决了冒充风险,用户不用担心访问的是某宝结果却在和钓鱼网站通信的问题:
- 不可否认:即不可否认已发生的行为,比如小明向小红借了 1000元,但没打借条,或者打了借条但没有签名,就会造成小红的资金损失。
2.1.3 HTTPS 通信原理概述
(1)TLS 握手阶段:
- 客户端发送支持的加密套件列表。
- 服务器选择加密套件,返回证书(含公钥)。
- 客户端验证证书,生成随机预主密钥(用服务器公钥加密)。
- 双方计算生成对称密钥(用于后续数据加密)。
(2) 数据传输阶段:使用对称加密传输数据,哈希算法校验完整性。
2.2 nginx 配置 https 证书
2.2.1 使用 openssl 生成证书和私钥
生成私钥
openssl genrsa -out server.key 2048 # 2048位RSA私钥
生成证书签名请求(CSR)
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=Example/CN=your-domain.com"
生成自签名证书(有效期 1 年)
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
2.2.2 nginx 启用 https
在server
块中添加 HTTPS 配置(替换为实际证书路径):
server {listen 443 ssl http2; # 监听443端口,启用HTTP/2server_name your-domain.com;# 证书配置ssl_certificate /path/to/server.crt; # 证书文件ssl_certificate_key /path/to/server.key; # 私钥文件# 安全增强配置(推荐)ssl_protocols TLSv1.3 TLSv1.2; # 禁用旧版协议(TLS 1.0/1.1)ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384; # 强加密套件ssl_prefer_server_ciphers on; # 服务器优先选择加密套件ssl_session_cache shared:SSL:10m; # 会话缓存(减少握手次数)ssl_session_timeout 10m;# 其他配置(如重定向HTTP到HTTPS)return 301 https://$host$request_uri; # 如需单独配置HTTP站点,可移除此行 }
2.2.3 通过浏览器验证
访问https://your-domain.com
,浏览器地址栏应显示安全锁图标。
相关文章:
Nginx 安全防护与 HTTPS 部署
目录 一. 核心安全配置 1. 隐藏版本号 2. 限制危险请求方法 3. 请求限制(CC 攻击防御) 4. 防盗链 二. 高级防护 1. 动态黑名单 2. nginx https 配置 2.1 https 概念 2.1.1 https 为什么不安全 2.1.2 安全通信的四大原则 2.1.3 HTTPS 通信原理…...
隐私计算框架FATE二次开发心得整理(工业场景实践)
文章目录 版本介绍隐私计算介绍前言FATE架构总体架构FateBoard架构前端架构后端架构 FateClient架构创建DAG方式DAG生成任务管理python SDK方式 FateFlow架构Eggroll架构FATE算法架构Cpn层FATE ML层 组件新增流程新增组件流程新增算法流程 版本介绍 WeBank的FATE开源版本 2.2.…...
MySQL性能调优探秘:我的实战笔记 (上篇:从EXPLAIN到SQL重写)
哈喽,各位技术伙伴们!👋 最近我一头扎进了 MySQL 性能调优的奇妙世界,感觉就像打开了新世界的大门!从一脸懵懂到现在能看懂 EXPLAIN 的“天书”,还能对 SQL “指点江山”,这个过程充满了“啊哈&…...
第15章 Python数据类型详解之分解理解:基础数据类型常见易错点和性能优化篇
文章目录 @[toc]第15章 Python数据类型详解之分解理解:基础数据类型常见易错点和性能优化一、常见易错点剖析1. 整数(`int`)2. 浮点数(`float`)3. 布尔(`bool`)4. 字符串(`str`)5. 字节(`bytes`)与字节数组(`bytearray`)二、性能优化策略1. 整数运算优化2. 浮点数…...
20250506联想Lenovo笔记本电脑的USB鼠标失效之后在WIN10下的关机的方法【触摸板被禁用】
20250506联想Lenovo笔记本电脑的USB鼠标失效之后在WIN10下的关机的方法【触摸板被禁用】 2025/5/6 20:35 缘起:在调试的时候,USB鼠标突然失效了。 由于USB转TTL电平的串口CH340经常插拔【可能接口接触不良了,插拔测试一下是不是串口坏掉了】。…...
【Hive入门】Hive安全管理与权限控制:审计日志全解析,构建完善的操作追踪体系
目录 引言 1 Hive审计日志概述 1.1 审计日志的核心价值 1.2 Hive审计日志类型 2 HiveServer2操作日志配置 2.1 基础配置方案 2.2 日志格式解析 2.3 日志轮转配置 3 Metastore审计配置 3.1 Metastore审计启用 3.2 审计事件类型 4 高级审计方案 4.1 与Apache Ranger…...
某团小程序mtgsig,_token 生成逻辑分析
前言 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 太久不更新 重新找回号 …...
C#问题 加载格式不正确解决方法
出现上面问题 解决办法:C#问题 改成x86 不要选择anycpu...
K-means
K均值算法(K-means)聚类 【关键词】K个种子,均值 一、K-means算法原理 聚类的概念:一种无监督的学习,事先不知道类别,自动将相似的对象归到同一个簇中。 K-Means算法是一种聚类分析(cluster…...
凌晨三点的数据库崩溃现场
我是小明,一个在创业公司打杂的全栈开发者。上周四凌晨三点,老板突然在群里甩来一句:"明天早会需要用户行为分析报表,重点看 Q1 新注册用户的付费转化率。"我揉着眼睛打开电脑,对着三个屏幕发愣 —— 左边是…...
【大模型面试】大模型(LLMs)高频面题全面整理(★2025年5月最新版★)
【大模型面试】大模型(LLMs)高频面题全面整理(★2025年5月最新版★) 🌟 嗨,你好,我是 青松 ! 🌈 自小刺头深草里,而今渐觉出蓬蒿。 本笔记适合大模型初学者和…...
C++入门基础(上)
一. C发展历史 C的起源可以追溯到1979年,当时Bjarne Stroustrup(本贾尼斯特劳斯特卢普,这个翻译的名字不同的地方可能有差异)在贝尔实验室从事计算机科学和软件工程的研究工作。面对项目中复杂的软件开发任务,特别是模拟和操作系统的开发工作…...
Nacos源码—4.Nacos集群高可用分析四
大纲 6.CAP原则与Raft协议 7.Nacos实现的Raft协议是如何写入数据的 8.Nacos实现的Raft协议是如何选举Leader节点的 9.Nacos实现的Raft协议是如何同步数据的 10.Nacos如何实现Raft协议的简版总结 8.Nacos实现的Raft协议是如何选举Leader节点的 (1)初始化RaftCore实例时会开…...
互联网大厂Java求职面试:AI与云原生下的系统设计挑战-3
互联网大厂Java求职面试:AI与云原生下的系统设计挑战-3 第一轮提问:从电商场景切入,聚焦分布式事务与库存一致性 面试官(严肃):郑薪苦,你最近在做电商系统的促销活动,如何处理分布…...
【KWDB创作者计划】_通过一篇文章了解什么是 KWDB(KaiwuDB)
文章目录 📋 前言🎯 关于 KaiwuDB 组成🎯 KaiwuDB 核心架构和功能图🧩 KaiwuDB 2.0 版本核心特性🧩 KaiwuDB Lite 版本介绍 🎯 KaiwuDB 产品优势🎯 KaiwuDB 应用场景🧩 典型应用场景…...
双系统电脑中如何把ubuntu装进外接移动固态硬盘
电脑:win11 ubuntu22.04 实体机 虚拟机:VMware17 镜像文件:ubuntu-22.04.4-desktop-amd64.iso 或者 ubuntu20.4的镜像 外接固态硬盘1个 一、首先win11中安装vmware17 具体安装方法,网上很多教程 二、磁盘分区 1.在笔…...
Flink + Kafka 构建实时指标体系的实战方法论
本文聚焦于如何利用 Flink 与 Kafka 构建一套灵活、可扩展的实时指标体系,特别适用于用户行为分析、营销漏斗转化、业务实时看板等场景。 一、为什么要构建实时指标体系? 在数字化运营趋势下,分钟级指标反馈能力变得尤为重要: ✅ 营销投放实时监控 CTR / CVR ✅ 业务增长实…...
RLOO:将多次其他回答的平均reward作为baseline
RLOO:将多次其他回答的平均reward作为baseline TL; DR:基于 REINFROCE 算法,对于同一 prompt 在线采样 k k k 次,取除自己外的其他 k − 1 k-1 k−1 条回答的平均 reward 作为 baseline。 从 PPO 到 REINFORCE 众所周知&…...
在 Laravel 12 中实现 WebSocket 通信时进行身份验证
在 Laravel 12 中实现 WebSocket 通信时,若需在身份验证失败后主动断开客户端连接,需结合 频道认证机制 和 服务端主动断连操作。以下是具体实现步骤: 一、身份验证流程设计 WebSocket 连接的身份验证通常通过 私有频道(Private …...
Transformer 与 LSTM 在时序回归中的实践与优化
🧠 深度学习混合模型:Transformer 与 LSTM 在时序回归中的实践与优化 在处理多特征输入、多目标输出的时序回归任务时,结合 Transformer 和 LSTM 的混合模型已成为一种有效的解决方案。Transformer 擅长捕捉长距离依赖关系,而 LS…...
Java注解
注解的底层原理: 注解的本质是一种继承自Annotation类的特殊接口,也被称为声明式接口,编译后会转换为一个继承自Anotation的接口,并生成相应的字节码文件。 注解的具体实现类是Java运行时生成的动态代理对象(接口本身…...
Linux USB Gadget | 框架 / 复合设备实践 / Configfs 配置
注:本文为“Linux USB Gadget ”相关文章合辑。 图片清晰度受引文原图所限。 略作重排,未整理去重。 如有内容异常,请看原文 Linux USB Gadget 框架概述 2018-04-11 haoxing990 本文记录我在公司 Gadget 相关的驱动开发开发过程中的感悟。…...
Spring Boot之MCP Client开发全介绍
Spring AI MCP(模型上下文协议,Model Context Protocol)客户端启动器为 Spring Boot 应用程序中的 MCP 客户端功能提供了自动配置支持。它支持同步和异步两种客户端实现方式,并提供了多种传输选项。 MCP 客户端启动器提供以下功能: 多客户端实例管理 支持管理多个客户端实…...
nnUNet V2修改网络——暴力替换网络为Swin-Unet
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 Swin-Unet是一种基于纯Transformer的U型编码器-解码器架构,专为医学图像分割任务设计。传统方法主…...
【计网】ICMP、IP、Ethernet PDU之间的封装关系
TCP/IP体系结构 应用层RIP、OSPF、FTP运输层TCP、UDP网际层IP、ARP、ICMP网络接口层底层协议(Ethernet) 数据链路层 Ethernet报文格式 6Byte6Byte2Byte46~1500Byte4Byte目的MAC地址源MAC地址类型/长度数据FCS 其中,类型 / 长度值小于 1536…...
JSON 转换为 Word 文档
以下是一个在 Spring Boot 中实现 JSON 转 Word 的示例: 首先,需要在项目中引入相关的依赖,如 json 和 Apache POI 等。在 pom.xml 文件中添加以下内容: <!-- JSON 相关依赖 --> <dependency><groupId>com.fast…...
Kotlin Lambda优化Android事件处理
在 Kotlin 中,Lambda 表达式为 Android 事件处理提供了更加简洁优雅的解决方案。通过合理使用 Lambda,可以显著减少模板代码,提升代码可读性。以下是具体实现方式和应用场景: 一、传统方式 vs Lambda 方式对比 1. 按钮点击事件处…...
Springboot接入Deepseek模型
#实现功能:上下文对话、对话历史、清除会话 #本次提供项目源码压缩包,直接下载解压后导入idea即可正常使用 下载好源码后请在DeepSeek 开放平台中注册账号并充值1块余额,注意充值和API keys,API keys包含了秘钥,获取后复制到项目…...
量子跃迁:破解未来计算的“时空密码”
引言:当量子比特撕裂“摩尔定律”的枷锁 根据德勤《Tech Trends 2025》报告,量子计算机可能在5-20年内成熟,其算力将直接威胁现有加密体系。这不仅是技术的跃迁,更是一场重构数字世界规则的“密码战争”。从谷歌的53量子比特悬铃…...
Spring MVC入门
本内容采用最新SpringBoot3框架版本,视频观看地址:B站视频播放 1. MVC概念 MVC是一种编程思想,它将应用分为模型(Model)、视图(View)、控制器(Controller)三个层次,这三部分以最低的耦合进行协同工作,从而提高应用的可扩展性及可维护性。 模型(Model) 模型层主要…...
【25软考网工】第五章(6)TCP和UDP协议、流量控制和拥塞控制、重点协议与端口
目录 一、TCP和UDP协议 1. TCP和UDP报文格式 1)TCP传输控制协议 2)UDP用户数据报协议 3)TCP与UDP对比 4)TCP和UDP类比 5)应用案例 例题1#可靠传输服务层 例题2#提供可靠传输功能层 6)TCP报文格式…...
如何修改 JAR 包中的源码
如何修改 JAR 包中的源码 前言一、准备工作二、将 JAR 当作 ZIP 打开并提取三、重写 Java 类方法 A:直接替换已编译的 .class方法 B:运行时类路径优先加载 四、修改 MyBatis(或其他)XML 资源五、重新打包 JAR(命令行&a…...
【Linux网络】应用层协议HTTP
🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343 🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12891150.html 目录 HTTP 协议 认识 URL urlencode 和 urldecode HTTP 协议请求与响应格式 H…...
高并发架构及场景解决方案
高并发 一、什么是高并发? 高并发是指系统在短时间内能够同时处理大量用户请求或任务的能力,是衡量分布式系统、互联网应用性能的重要指标之一。它的核心目标是确保系统在高负载下仍能稳定、高效运行,同时提供良好的用户体验。 1、高并发系…...
[ linux-系统 ] 常见指令2
1. man 指令 语法:man [选项] 命令 功能:查看联机手册获取帮助。 选项说明-k根据关键字搜索联机帮助。num只在第num章节找。-a显示所有章节的内容。 man是 Unix 和类 Unix 系统中的一个命令,用于查看操作系统和软件的手册页面(ma…...
Spring AI快速入门
一、引入依赖 <dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-openai</artifactId> </dependency> <dependencyManagement><dependencies><dependency><groupId>o…...
TCP数据报
三次握手(Three-Way Handshake) 是 TCP 协议中用于建立可靠连接的过程。通过三次握手,客户端和服务器能够确认彼此的存在,并且同步各自的初始序列号,为后续的数据传输做好准备。三次握手确保了双方在正式传输数据前能…...
JS循环-for循环嵌套
打印5行5列星星 效果图 代码: // 打印出5行5列的星星for(i 1 ; i < 5 ; i ) {// 外层控制打印行for(j 1 ; j < 5 ; j ) {// 内层控制每行打印几个document.write(⭐)}document.write(<br>)} 打印侧三角 效果图 代码: for(i 1 ; i &l…...
【技术追踪】通过潜在扩散和先验知识增强时空疾病进展模型(MICCAI-2024)
向扩散模型中引入先验知识,实现疾病进展预测,扩散模型开始细节作业了~ 论文:Enhancing Spatiotemporal Disease Progression Models via Latent Diffusion and Prior Knowledge 代码:https://github.com/LemuelPuglisi/BrLP 0、摘…...
Linux/AndroidOS中进程间的通信线程间的同步 - 内存映射
前言 如何使用 mmap()系统调用来创建内存映射。内存映射可用于 IPC 以及其他很多方面。 1 概述 mmap()系统调用在调用进程的虚拟地址空间中创建一个新内存映射。映射分为两种。 文件映射:文件映射将一个文件的一部分直接映射到调用进程的虚拟内存中。一旦一个文…...
单例模式的实现方法
单例模式(Singleton Pattern)是一种常用的软件设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。这种模式在需要控制对资源(如配置对象、线程池、缓存等)的访问时特别有用。 一、单例模…...
laravel 12 监听syslog消息,并将消息格式化后存入mongodb
在Laravel 12中实现监听Syslog消息并格式化存储到MongoDB,需结合日志通道配置、Syslog解析和MongoDB存储操作。以下是具体实现方案: 一、环境配置 安装MongoDB扩展包 执行以下命令安装必要的依赖: composer require jenssegers/mongodb ^4.0确…...
如何在使用 docker-compose 命令时指定 COMPOSE_PROJECT_NAME ?
1.默认值 COMPOSE_PROJECT_NAME 环境变量的默认值并非 docker。在没有显式设置 COMPOSE_PROJECT_NAME 时,其默认值是运行 docker-compose 命令所在目录的基础名称(也就是当前工作目录去掉路径后的文件夹名称)。 以下为你详细说明࿱…...
在命令行终端中快速打开npm包官网
命令 npm home 命令用于快速打开指定 npm 包的官网。例如,npm home react 会尝试打开 React 库的官方网站。 npm home PACKAGE_NAME 该命令会首先查找指定包的 package.json 文件中的 homepage 字段,如果存在,则打开该字段指定的网址。 {&…...
鸿蒙NEXT开发动画(风格的弹性缩放加载动画组件)
1.创建空白项目 2.Page文件夹下面新建Spin.ets文件,代码如下: // 接口定义(必须放在使用前) /*** 关键帧动画整体配置参数*/ interface KeyframeAnimationConfig {iterations: number;delay: number; }/*** 单个关键帧动画项*/…...
【MongoDB篇】MongoDB的事务操作!
目录 引言第一节:什么是事务? (ACID 原则)第二节:MongoDB 的演进:多文档 ACID 事务的到来!🎉第三节:事务的“玩法”——如何执行一个事务?💻🤝第四节…...
Android第六次面试总结之Java设计模式篇(一)
一、单例模式在 Android 面试中的核心考点 1. Android 中如何安全实现单例?需注意哪些坑?(字节跳动、美团面试真题) 解答: Android 中实现单例需重点关注 Context 泄漏、线程安全 和 反射 / 序列化攻击。 推荐实现&…...
关于论文中插入公式但是公式相对于段落的位置偏上应该如何调整备份
因为mythtype之前插入到word里面出现了一些问题就给删掉了,本来要是word里面内联mythtype的话直接,点击mythtype的格式化就可以了, 也就是这个佬的视频介绍链接 然后现在试了试普通word里面的方法,这个是比较有用的 然后看这个例…...
[java八股文][Java并发编程面试篇]并发安全
juc包下你常用的类? 线程池相关: ThreadPoolExecutor:最核心的线程池类,用于创建和管理线程池。通过它可以灵活地配置线程池的参数,如核心线程数、最大线程数、任务队列等,以满足不同的并发处理需求。Exe…...
【东枫科技】代理英伟达产品:智能网卡
文章目录 对比详细:NVIDIA ConnectX-7 适配器详细:NVIDIA ConnectX-6 Lx 以太网智能网卡详细:NVIDIA ConnectX-6 Dx 以太网智能网卡详细:NVIDIA ConnectX-6 InfiniBand 适配器 对比 详细:NVIDIA ConnectX-7 适配器 为最…...