Nginx 安全防护与 HTTPS 安全部署
目录
Nginx 安全防护与 HTTPS 安全部署
一、引言
二、Nginx 安全防护措施
2.1 关闭不必要的服务和端口
2.2 限制访问频率
2.3 防止 SQL 注入和 XSS 攻击
2.4 隐藏 Nginx 版本信息
三、HTTPS 安全部署
3.1 HTTPS 简介
3.2 申请 SSL/TLS 证书
3.3 配置 Nginx 启用 HTTPS
3.4 HTTP 自动跳转至 HTTPS
四、实验环境搭建与配置
4.1 实验环境准备
4.2 安装 Nginx
4.3 配置 Nginx 安全防护
4.4 部署 HTTPS
五、总结
六、Nginx 安全配置的高级技巧
6.1 基于 IP 的访问控制
6.2 配置 HTTP 头信息
6.3 配置 SSL/TLS 参数
七、Nginx 安全监控与日志分析
7.1 监控 Nginx 状态
7.2 日志分析
八、应对常见安全漏洞
8.1 缓冲区溢出漏洞
8.2 拒绝服务(DoS)和分布式拒绝服务(DDoS)攻击
8.3 中间人攻击
九、总结与展望
一、引言
随着互联网的快速发展,Web 应用的安全性变得越来越重要。Nginx 作为一款高性能的 Web 服务器和反向代理服务器,因其高效的性能和灵活的配置,被广泛应用于各类网站和应用系统中。然而,Nginx 在提供强大功能的同时,也面临着诸如 SQL 注入、跨站脚本攻击(XSS)、DDoS 攻击等安全威胁。此外,随着用户对数据隐私和传输安全的重视,使用 HTTPS 协议进行数据加密传输已成为保障 Web 安全的重要手段。本文将详细介绍 Nginx 的安全防护措施以及 HTTPS 安全部署的方法,并通过实际实验命令帮助读者深入理解和掌握相关技术。
二、Nginx 安全防护措施
2.1 关闭不必要的服务和端口
Nginx 默认会监听 80 端口(HTTP),在实际应用中,如果不需要 HTTP 服务,应及时关闭 80 端口,避免潜在的安全风险。同时,对于其他不必要的服务,如 Nginx 的状态页(默认路径为/status
),若未进行安全配置,可能会暴露服务器的运行状态信息,也应谨慎处理或关闭。
2.2 限制访问频率
通过 Nginx 的limit_req
模块可以限制客户端的访问频率,防止恶意用户通过大量请求耗尽服务器资源,抵御 DDoS 攻击和暴力破解。例如,限制单个 IP 每秒最多发起 2 个请求:
http {limit_req_zone $binary_remote_addr zone=mylimit:10m rate=2r/s;server {location / {limit_req zone=mylimit;proxy_pass http://backend;}}
}
上述配置中,$binary_remote_addr
表示客户端 IP 地址,zone=mylimit:10m
定义了一个名为mylimit
、大小为 10MB 的共享内存区域来存储访问频率信息,rate=2r/s
表示限制速率为每秒 2 个请求。
2.3 防止 SQL 注入和 XSS 攻击
在 Nginx 的配置中,可以通过设置合适的Content-Type
和过滤特殊字符来减少 SQL 注入和 XSS 攻击的风险。例如,对于上传文件的路径进行严格的白名单过滤:
location /upload {if (!-e $request_filename) {return 404;}valid_referers none blocked example.com;if ($invalid_referer) {return 403;}root /var/www/html;
}
上述配置中,valid_referers
定义了合法的来源域名,若请求的Referer
不在合法列表中,则返回 403 禁止访问,防止恶意跨站请求伪造(CSRF)。
2.4 隐藏 Nginx 版本信息
默认情况下,Nginx 会在响应头中暴露版本信息,攻击者可能据此寻找已知漏洞进行攻击。可以通过修改 Nginx 配置隐藏版本信息:
server_tokens off;
添加上述配置后,Nginx 响应头中的Server
字段将只显示nginx
,而不会显示具体版本号。
三、HTTPS 安全部署
3.1 HTTPS 简介
HTTPS(Hyper Text Transfer Protocol Secure)是在 HTTP 的基础上通过传输加密和身份认证来确保网络通信安全的协议。它使用 SSL/TLS 协议对数据进行加密,防止数据在传输过程中被窃取或篡改,同时通过数字证书验证服务器身份,确保用户访问的是合法的服务器。
3.2 申请 SSL/TLS 证书
要实现 HTTPS 部署,首先需要申请 SSL/TLS 证书。证书可以从 Let's Encrypt 等免费证书颁发机构获取,也可以从商业证书提供商购买。以下以 Let's Encrypt 为例,介绍证书申请方法:
安装 Certbot 工具(以 Ubuntu 系统为例):
sudo apt update
sudo apt install certbot python3-certbot-nginx
使用 Certbot 申请证书:
sudo certbot --nginx -d example.com
上述命令中,-d
参数指定要申请证书的域名,可以同时指定多个域名(如-d example.com -d www.example.com
)。Certbot 会自动与 Let's Encrypt 服务器交互,验证域名所有权并下载证书,同时自动修改 Nginx 配置启用 HTTPS。
3.3 配置 Nginx 启用 HTTPS
如果手动获取了证书(如从商业证书提供商购买),则需要手动配置 Nginx。假设证书文件为example.com.crt
,私钥文件为example.com.key
,配置如下:
server {listen 443 ssl;server_name example.com;ssl_certificate /etc/nginx/ssl/example.com.crt;ssl_certificate_key /etc/nginx/ssl/example.com.key;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {root /var/www/html;index index.html index.htm;}
}
上述配置中:
listen 443 ssl
表示监听 443 端口并启用 SSL/TLS。
ssl_certificate
指定证书文件路径,ssl_certificate_key
指定私钥文件路径。
ssl_protocols
指定允许使用的 SSL/TLS 协议版本,建议只启用安全的版本(如 TLSv1.2 和 TLSv1.3)。
ssl_ciphers
指定加密算法套件,选择高强度的加密算法,禁用弱加密算法。
ssl_prefer_server_ciphers on
表示优先使用服务器端配置的加密算法。
3.4 HTTP 自动跳转至 HTTPS
为了确保所有用户访问都通过 HTTPS 进行,可以配置 Nginx 将 HTTP 请求自动重定向到 HTTPS:
server {listen 80;server_name example.com;return 301 https://$server_name$request_uri;
}
上述配置中,当用户通过 HTTP 访问网站时,Nginx 会返回 301 永久重定向响应,将用户请求重定向到对应的 HTTPS 地址。
四、实验环境搭建与配置
4.1 实验环境准备
本次实验使用一台 Ubuntu 20.04 服务器,已安装 Nginx。确保服务器能够正常访问互联网,以便申请 SSL 证书。
4.2 安装 Nginx
如果尚未安装 Nginx,可以使用以下命令安装:
sudo apt update
sudo apt install nginx
安装完成后,Nginx 会自动启动,可以通过浏览器访问服务器 IP 地址验证 Nginx 是否正常运行。
4.3 配置 Nginx 安全防护
- 关闭不必要的服务和端口:
编辑 Nginx 默认配置文件/etc/nginx/sites-available/default
,删除或注释掉监听 80 端口的server
块(如果不需要 HTTP 服务)。 - 限制访问频率:
在http
块中添加如下配置:
http {limit_req_zone $binary_remote_addr zone=mylimit:10m rate=2r/s;server {location / {limit_req zone=mylimit;root /var/www/html;index index.html index.htm;}}
}
保存配置后,重启 Nginx 服务:
sudo systemctl restart nginx
隐藏 Nginx 版本信息:
在/etc/nginx/nginx.conf
文件中添加server_tokens off;
,然后重启 Nginx 服务。
4.4 部署 HTTPS
- 申请 SSL 证书:
按照前文所述方法安装 Certbot 并申请证书:
sudo apt update
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com
- 验证 HTTPS 配置:
证书申请成功后,Certbot 会自动修改 Nginx 配置。可以通过浏览器访问https://example.com
,检查是否显示安全连接提示。 - 配置 HTTP 自动跳转至 HTTPS:
在/etc/nginx/sites-available/default
文件中添加 HTTP 重定向配置:
server {listen 80;server_name example.com;return 301 https://$server_name$request_uri;
}
保存配置后,重启 Nginx 服务:
sudo systemctl restart nginx
五、总结
本文详细介绍了 Nginx 的安全防护措施和 HTTPS 安全部署方法,并通过实际实验命令帮助读者掌握相关技术。通过关闭不必要的服务、限制访问频率、防止 SQL 注入和 XSS 攻击、隐藏 Nginx 版本信息等措施,可以有效提升 Nginx 服务器的安全性;通过申请 SSL/TLS 证书并正确配置 Nginx 启用 HTTPS,可以确保 Web 应用的数据传输安全。在实际应用中,应根据具体需求和安全要求,灵活配置 Nginx,为用户提供安全可靠的 Web 服务。同时,定期更新 Nginx 版本和 SSL 证书,及时修复安全漏洞,也是保障 Web 安全的重要措施。
六、Nginx 安全配置的高级技巧
6.1 基于 IP 的访问控制
可以通过 Nginx 的allow
和deny
指令对特定 IP 地址或 IP 段进行访问控制。例如,只允许特定 IP 段的用户访问网站:
server {listen 443 ssl;server_name example.com;# 允许特定IP段访问allow 192.168.1.0/24;# 拒绝其他所有IP访问deny all;ssl_certificate /etc/nginx/ssl/example.com.crt;ssl_certificate_key /etc/nginx/ssl/example.com.key;location / {root /var/www/html;index index.html index.htm;}
}
上述配置中,allow 192.168.1.0/24
允许 IP 地址在192.168.1.0 - 192.168.1.255
范围内的用户访问,deny all
拒绝其他所有 IP 地址的访问。
6.2 配置 HTTP 头信息
合理配置 HTTP 头信息可以增强网站的安全性。例如,设置X-Frame-Options
头信息可以防止网站被其他网站通过<iframe>
标签嵌入,避免点击劫持攻击:
add_header X-Frame-Options "SAMEORIGIN";
添加上述配置后,只有来自同一域名的页面才能通过<iframe>
嵌入该网站。
还可以设置X-XSS-Protection
头信息来启用浏览器的 XSS 过滤机制:
add_header X-XSS-Protection "1; mode=block";
此配置会让浏览器在检测到潜在的 XSS 攻击时阻止页面加载。
6.3 配置 SSL/TLS 参数
除了前文提到的ssl_protocols
和ssl_ciphers
,还可以进一步优化 SSL/TLS 配置。例如,启用 OCSP Stapling 来提高 SSL 握手的性能和安全性:
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
上述配置中,ssl_stapling on
启用 OCSP Stapling 功能,ssl_stapling_verify on
开启对 OCSP 响应的验证,resolver
指定 DNS 解析服务器,resolver_timeout
设置 DNS 解析超时时间。
七、Nginx 安全监控与日志分析
7.1 监控 Nginx 状态
可以通过 Nginx 的stub_status
模块监控 Nginx 的运行状态。首先,在 Nginx 配置文件中添加如下配置:
server {listen 80;server_name example.com;location /nginx_status {stub_status on;access_log off;allow 127.0.0.1;deny all;}
}
上述配置中,stub_status on
启用状态监控功能,access_log off
关闭该路径的访问日志记录,allow 127.0.0.1
只允许本地访问状态页面,deny all
拒绝其他所有 IP 地址的访问。
配置完成后,重启 Nginx 服务,通过访问http://example.com/nginx_status
(在本地)可以查看 Nginx 的状态信息,包括当前连接数、处理的请求数等。
7.2 日志分析
Nginx 的访问日志和错误日志包含了大量有用的信息,可以通过分析日志来发现潜在的安全问题。例如,通过分析访问日志可以发现异常的请求模式,如大量来自同一 IP 地址的请求可能是 DDoS 攻击的迹象。
可以使用工具如awk
、grep
等对日志文件进行简单分析。例如,统计每个 IP 地址的请求次数:
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
上述命令会输出每个 IP 地址的请求次数,并按请求次数从高到低排序。
还可以使用专业的日志分析工具如 ELK Stack(Elasticsearch、Logstash、Kibana)对 Nginx 日志进行更深入的分析和可视化展示。
八、应对常见安全漏洞
8.1 缓冲区溢出漏洞
虽然 Nginx 本身对缓冲区溢出有较好的防护,但在使用第三方模块或自定义配置时仍可能存在风险。为了避免缓冲区溢出漏洞,应定期更新 Nginx 和相关模块到最新版本,同时避免使用来源不明的第三方模块。
8.2 拒绝服务(DoS)和分布式拒绝服务(DDoS)攻击
除了前文提到的限制访问频率,还可以使用 CDN(内容分发网络)来缓解 DDoS 攻击。CDN 可以分散流量,将攻击流量拦截在离用户最近的节点,减轻源服务器的压力。
此外,一些云服务提供商也提供了 DDoS 防护服务,可以根据实际需求选择合适的服务。
8.3 中间人攻击
为了防止中间人攻击,应确保 SSL/TLS 证书的有效性和完整性。定期检查证书的有效期,及时更新证书。同时,配置 Nginx 使用安全的 SSL/TLS 协议版本和加密算法套件,避免使用易受攻击的协议和算法。
九、总结与展望
通过本文的介绍,我们了解了 Nginx 安全防护的多种措施,包括关闭不必要的服务和端口、限制访问频率、防止 SQL 注入和 XSS 攻击、隐藏版本信息等,以及 HTTPS 安全部署的方法和步骤。同时,还介绍了 Nginx 安全配置的高级技巧、安全监控与日志分析的方法,以及应对常见安全漏洞的策略。
在未来,随着互联网技术的不断发展,Web 应用面临的安全威胁也会不断变化。因此,我们需要持续关注 Nginx 的安全更新和相关技术的发展,及时调整和优化 Nginx 的安全配置,以保障 Web 应用的安全稳定运行。同时,加强安全意识教育,提高运维人员和开发人员的安全技能水平,也是保障 Web 安全的重要环节。
相关文章:
Nginx 安全防护与 HTTPS 安全部署
目录 Nginx 安全防护与 HTTPS 安全部署 一、引言 二、Nginx 安全防护措施 2.1 关闭不必要的服务和端口 2.2 限制访问频率 2.3 防止 SQL 注入和 XSS 攻击 2.4 隐藏 Nginx 版本信息 三、HTTPS 安全部署 3.1 HTTPS 简介 3.2 申请 SSL/TLS 证书 3.3 配置 Nginx 启用 HTTP…...
告别异步复杂性?JDK 21 虚拟线程让高并发编程重回简单
长期以来,Java 的并发编程主要围绕平台线程(Platform Threads)构建。然而,在现代应用对海量并发的巨大需求面前,传统模型面临着可伸缩性的挑战。JDK 21 引入了一项突破性的特性——虚拟线程(Virtual Thread…...
Marin说PCB之POC电路layout设计仿真案例---08
Layers –stackup: RX1_96724F_FAKRA_1仿真原理图信息如下,设计中采用了6Gbps/187Mbps的速率配置: IL的limited: RL的limited: RX1_96724F_FAKRA_1--Return Loss:结果显示,板级设计裕量不是很充足,很接近限值曲线了。 …...
【Python系列】Python 中的 HTTP 请求处理
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
【BUG】mmdetection ValueError: need at least one array to concatenate
问题: 使用mmdetection框架使用COCO格式训练自定义数据集时出现如下错误: ValueError: need at least one array to concatenate 解决方法: 修改mmdet/datasets/coco.py文件,将CocoDataset类中的METAINFO修改为自己数据集的类别信…...
GLIBC:GLIBCXX not found
更多内容:XiaoJ的知识星球 目录 1. GLIBCXX not found2.解决方法:(使用预编译库)2.1 获取预编译libstdc库2.2 获取预编译libc库 注意:涉及到修改GLIBC库是个危险操作,可能会影响到系统。请谨慎操作…...
初步认识java
目录 1. java语言概述 1.1 java是什么 1.2 Java语言重要性 1.2.1 语言广泛使用程度 1.2.2 使用领域 1.3 Java语言发展简史 1.4 Java语言的特点 2. Java开发环境安装 2.1 什么是JDK 2.2 什么是JRE 2.3 什么是JVM 2.4 JDK、JRE 和 JVM的包含关系 2.5 JDK的安装和环…...
ShardingJdbc-水平分库
ShardingJdbc-水平分库 水平分库 表结构相同、记录不同、所属库不同多个库中表记录数和才是总的记录数通常根据主键ID进行分表,这里采用奇偶策略 案例 建立库 sharding_demo-1、sharding_demo-2每个库建立表 user_1、user_2 表结构相同id 为主键,big…...
模板模式 VS 建造者模式
模板模式和建造者模式是两种不同的设计模式,下面从定义、结构、应用场景等方面介绍它们的区别,并给出 Python 示例代码。 定义 模板模式:定义了一个操作中的算法骨架,将一些步骤的实现延迟到子类中。这样,子类可以在…...
模态编码器
1.CLIP的textEncoder能输入多少个单词? CLIP 模型中的 context_length 设置为 77,表示每个输入句子会被 tokenized 成最多 77 个token。这个 77 并不是直接对应到 77 个单词, 因为一个单词可能会被拆分成多个 token,特别是对于较长的或不常…...
Python-map从基础到进阶
无论你是打打算法比赛还是做项目map函数肯定都是你必学内置函数,这篇文章小白也能轻松掌握map函数,学习map,理解map,进阶用法map 描述 map() 函数会根据提供的函数对指定序列做映射。 第一个参数 function 以参数序列中的每一个…...
大数据产品销售数据分析:基于Python机器学习产品销售数据爬虫可视化分析预测系统设计与实现
文章目录 大数据产品销售数据分析:基于Python机器学习产品销售数据爬虫可视化分析预测系统设计与实现一、项目概述二、项目说明三、研究意义四、系统总体架构设计总体框架技术架构数据可视化模块设计图后台管理模块设计数据库设计 五、开发技术介绍Flask框架Python爬…...
「Mac畅玩AIGC与多模态21」开发篇17 - 多字段判断与多路径分支工作流示例
一、概述 本篇在结构化输出字段控制流程的基础上,进一步引入多字段联合判断与多路径分支控制。通过综合分析用户输入的情绪类型和紧急程度,实现三分支路径执行逻辑,开发人员将掌握复杂流程中多条件判断节点的配置技巧。 二、环境准备 macO…...
网页截图指南
截取网页截图看似是一项简单的任务,但当你真正动手去做的时候,就会发现事情远没有那么容易。我在尝试截取一篇很长的 Reddit 帖子时就深有体会。一开始我以为只要调用 browser.TakeImage() 就万事大吉,结果却陷入了浏览器视口、动态内容加载、…...
作为主动唤醒的节点,ECU上电如何请求通讯
一个ECU如果作为主动唤醒的节点,ECU上电时可以通过以下方式请求通信 如上图所示,ECU在上电后,在OS起来后,可以通过在BSWM模块中完成NvM_ReadAll和相关BSW 模块初始化以及Rte_Start后,这个时候周期性Task已经可以正常调…...
应用服务器Tomcat
启动两给tomcat apache-tomcat-9.0.60\bin——> 启动tomcat startup.bat (Windows) / startup.sh(Linux) 关闭tomcat shutdown.bat(Windows)/shutdown.sh (Linux) 复制一个Tomcat为2,先启…...
【安全】端口保护技术--端口敲门和单包授权
【安全】端口保护技术--端口敲门和单包授权 备注一、端口保护二、端口敲门三、单包授权 备注 2025/05/06 星期二 最近学习了端口保护技术总结一下 一、端口保护 为了保护联网设备的安全,一般会尽量减小暴露的攻击面,开放的端口就是最常见的攻击面&…...
金升阳科技:配套AC/DC砖类电源的高性能滤波器
金升阳推出的FC-L15HB是为我司AC砖类电源配套使用的EMC辅助器。将FC-L15HB加装在金升阳AC/DC砖类电源的前端,可以提高电源产品IEC/EN61000—4系列及CISPR32/EN55032标准的EMC性能。 01 产品优势 (1)高共差模插入损耗 ①DM&CM࿱…...
浅谈 - GPTQ为啥按列量化
前言 曾在游戏世界挥洒创意,也曾在前端和后端的浪潮间穿梭,如今,而立的我仰望AI的璀璨星空,心潮澎湃,步履不停!愿你我皆乘风破浪,逐梦星辰! 先说结论 GPTQ 按列量化 W,…...
引用第三方自定义组件——微信小程序学习笔记
1. 使用 npm 安装第三方包 1.1 下载安装Node.js 工具 下载地址:Node.js — Download Node.js 1.2 安装 npm 包 在项目空白处右键弹出菜单,选择“在外部终端窗口打开”,打开命令行工具,输入以下指令: 1> 初始化:…...
解决android studio 中gradle 出现task list not built
点击 file 选择settings...
UE5 材质淡入淡出
混合模式选择半透明,灯光照明模式选择Surface TranslucencyVolume...
如何用Java读取PDF
在本文中,我将向您展示如何使用JPedal(一个用于转换、打印、查看PDF文件的Java库)在Java中读取PDF。 如何在Java中读取PDF文件 • 将JPedal添加到您的类或模块路径中(下载试用版jar包)。 • 使用JPedal库中的&q…...
tinyrenderer笔记(中)
tinyrenderer个人代码仓库:tinyrenderer个人练习代码 前言 原教程的第 4 课与第 5 课主要介绍了坐标变换的一些知识点,但这一篇文章的内容主要是手动构建 MVP 矩阵,LookAt 矩阵以及原教程涉及到的一些知识点,不是从一个图形学小白…...
人工智能对人类的影响
人工智能对人类的影响 近年来,人工智能(AI)技术以惊人的速度发展,深刻改变了人类社会的方方面面。从医疗、教育到交通、制造业,AI的应用正在重塑我们的生活方式。然而,这一技术革命也带来了机遇与挑战并存…...
LeetCode 220 存在重复元素 III 题解
LeetCode 220 存在重复元素 III 题解 题目描述 给定一个整数数组 nums 和两个整数 k 和 t,请判断数组中是否存在两个不同的索引 i 和 j,使得: abs(nums[i] - nums[j]) < tabs(i - j) < k 方法思路:桶排序 滑动窗口 核…...
0506--01-DA
36. 单选题 在娱乐方式多元化的今天,“ ”是不少人(特别是中青年群体)对待戏曲的态度。这里面固然存在 的偏见、难以静下心来欣赏戏曲之美等因素,却也有另一个无法回避的原因:一些戏曲虽然与观众…...
单应性估计
单应性估计是计算机视觉中的核心技术,主要用于描述同一平面在不同视角下的投影变换关系。以下从定义、数学原理、估计方法及应用场景等方面进行综合解析: 一、单应性的定义与核心特性 单应性(Homography)是射影几何中的概念&…...
Missashe考研日记-day33
Missashe考研日记-day33 1 专业课408 学习时间:2h30min学习内容: 今天开始学习OS最后一章I/O管理的内容,听了第一小节的内容,然后把课后习题也做了。知识点回顾: 1.I/O设备分类:按信息交换单位、按设备传…...
YOLO8之学习指南
一、引言 在计算机视觉领域,目标检测是一项核心任务,其应用范围广泛,涵盖安防监控、自动驾驶、智能医疗等众多领域。YOLO(You Only Look Once)系列算法凭借其高效、快速的特点,在目标检测领域占据重要地位。YOLO8 作为 YOLO 系列的最新版本,进一步提升了检测精度和速度…...
中达瑞和便携式高光谱相机:珠宝鉴定领域的“光谱之眼”
在珠宝行业中,真伪鉴定始终是核心需求。随着合成技术与优化处理手段的日益精进,传统鉴定方法逐渐面临挑战。中达瑞和推出的便携式高光谱相机,凭借其独特的“图谱合一”技术,为珠宝真假鉴定提供了科学、高效且无损的解决方案&#…...
C++自动重连机制设计与实现指南
一、为什么需要自动重连 在网络通信场景中,连接中断是不可避免的常见问题: 网络波动(移动网络切换、WiFi信号不稳) 服务端维护/重启 中间设备故障(路由器、负载均衡器) 操作系统资源限制 长时间空闲断…...
昇腾Atlas 200I DK A2 开发者套件无法上网问题的解决
目录 引言 USB WiFi网卡 USB以太网卡 结语 引言 今年通过华为的智能基座项目得到了三个Atlas 200I DK A2 开发者套件,很不幸其中有一块是坏的,其上网部分不能使用:2个RJ45的口在Linux系统内都无法识别,而USB口虽然能够识别&a…...
私有仓库 Harbor、GitLab
gitlab 部署资料 Harbor...
极狐GitLab 如何将项目共享给群组?
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 共享项目和群组 (BASIC ALL) 在极狐GitLab 16.10 中,更改为在成员页面的成员选项卡上显示被邀请群组成员…...
QGIS分割平行四边形
需求:四个点确定的平行四边形的范围,我想把他们均分成20份,然后取质心。 解决方案:找了好几个插件,Polygon Divider、Split Polygon发现不好用,不能满足需求。最终找到了Equalyzer,就是比较麻烦…...
NestJS 的核心构建块有哪些?请简要描述它们的作用(例如,Modules, Controllers, Providers)
NestJS 核心构建块解析(Modules、Controllers、Providers) NestJS 是一个基于 TypeScript 的渐进式 Node.js 框架,核心设计借鉴了 Angular 的模块化思想。下面从实际开发角度解析它的三大核心构建块,并附代码示例和避坑指南。 一…...
Nginx 安全防护与Https 部署实战
目录 一、核心安全配置 1. 编译安装 Nginx 2. 隐藏版本号 3. 限制危险请求方法 4. 请求限制(CC 攻击防御) (1)使用 Nginx 的 limit_req 模块限制请求速率 (2)压力测试验证 5. 防盗链 二、高级防护 …...
电商双十一美妆数据分析
1. 数据读取与基础查看 库导入:使用 import numpy as np 和 import pandas as pd 导入常用数据分析库。数据读取: df pd.read_csv(双十一_淘宝美妆数据.csv) 读取数据文件。数据查看:通过 df.head() 查看数据前几行; df.info() 了…...
高等数学第六章---定积分(§6.1元素法6.2定积分在几何上的应用1)
本文是关于定积分应用的系列讲解的第一讲,主要介绍元素法的基本思想,并重点讲解如何运用定积分计算平面图形的面积,包括直角坐标系和极坐标系下的情况。 6.1 元素法 曲边梯形的面积回顾 我们首先回顾曲边梯形的面积。设函数 f ( x ) ≥ 0 …...
十分钟了解 @MapperScan
MapperScan 是 MyBatis 和 MyBatis-Plus 提供的一个 Spring Boot 注解,用于自动扫描并注册 Mapper 接口,使其能够被 Spring 容器管理,并与对应的 XML 或注解 SQL 绑定。它的核心作用是简化 MyBatis Mapper 接口的配置,避免手动逐个…...
爬虫程序中如何添加异常处理?
在爬虫程序中添加异常处理是确保程序稳定性和可靠性的关键步骤。异常处理可以帮助你在遇到错误时捕获问题、记录日志,并采取适当的措施,而不是让程序直接崩溃。以下是一些常见的异常处理方法和示例,帮助你在爬虫程序中实现健壮的错误处理机制…...
[250506] Auto-cpufreq 2.6 版本发布:带来增强的 TUI 监控及多项改进
目录 Auto-cpufreq 2.6 版本发布:带来增强的 TUI 监控及多项改进 Auto-cpufreq 2.6 版本发布:带来增强的 TUI 监控及多项改进 Auto-cpufreq,一款适用于 Linux 的免费开源自动 CPU 速度与功耗优化器,已发布其最新版本 2.6。该工具…...
探索Hello Robot开源移动操作机器人Stretch 3的技术亮点与市场定位
Hello Robot 推出的 Stretch 3 机器人凭借其前沿技术和多功能性在众多产品中占据优势。Stretch 3 机器人采用开源设计,为开发者提供了灵活的定制空间,能够满足各种不同的需求。其配备的灵活手腕组件和 Intel Realsense D405 摄像头,显著增强了…...
【Harbor v2.13.0 详细安装步骤 安装证书启用 HTTPS】
Harbor v2.13.0 详细安装步骤(启用 HTTPS) 1. 环境准备 系统要求:至少 4GB 内存,100GB 磁盘空间。 已安装组件: Docker(版本 ≥ 20.10)Docker Compose(版本 ≥ v2.0) 域…...
码蹄集——直角坐标到极坐标的转换、射线、线段
目录 MT1052 直角坐标到极坐标的转换 MT1066 射线 MT1067 线段 MT1052 直角坐标到极坐标的转换 思路: arctan()在c中是atan(),结果是弧度要转换为度,即乘与180/PI 拓展:cos()、sin()在c代码中表示方式不变 #include<bits/…...
accept() reject() hide()
1. accept() 用途 确认操作:表示用户完成了对话框的交互并确认了操作(如点击“确定”按钮)。 关闭模态对话框:结束 exec() 的事件循环,返回 QDialog::Accepted 结果码。适用场景 模态对话框(通过 exec()…...
天文探秘学习小结
宇宙 宇宙大爆炸 时间 130亿年前 10-30次方秒内发生大爆炸 发现 20世纪80年代 哈勃发现 通过基于其他星系相对地球的移动速度得出的结论 哈勃发现离地球越远的星系 离开地球的速度越快 得出宇宙加速膨胀的结论 测量造父变星到地球的距离 哈勃测量的是一种恒星 叫造父变星 造…...
游戏引擎学习第261天:切换到静态帧数组
game_debug.cpp: 将ProfileGraph的尺寸初始化为相对较大的值 今天的讨论主要围绕性能分析器(Profiler)以及如何改进它的可用性展开。当前性能分析器已经能够正常工作,但我们希望通过一些改进,使其更易于使用,特别是在…...
利用 Kali Linux 进行信息收集和枚举
重要提示: 在对任何系统进行信息收集和枚举之前,务必获得明确的授权。未经授权的扫描和探测行为是非法的,并可能导致严重的法律后果。本教程仅用于教育和授权测试目的。 Kali Linux 官方链接: 官方网站: https://www…...