实用指南:Nginx反向代理与负载均衡部署
Nginx反向代理与负载均衡部署实战指南
- 前言
- 一、规划部署负载均衡和反向代理
- 二、部署Nginx负载均衡器
- 2.1. 准备基础环境
- 2.2. 创建Nginx运行用户
- 2.3. 编译安装Nginx
- 2.4. 配置Nginx系统服务
- 2.5. 验证Nginx安装
- 三、部署后端2台Tomcat应用服务器
- 3.1. 安装JDK
- 3.2. 部署Tomcat实例1
- 3.3. 部署Tomcat实例2
- 四、动静分离配置
- 4.1. 配置Tomcat1的动态页面
- 4.2. 配置Tomcat2的动态页面
- 4.3. 配置Nginx的动静分离
- 五、测试效果
- 5.1. 测试静态页面
- 5.2. 测试静态图片
- 5.3. 测试负载均衡
- 结语
前言
在现代Web架构中,高可用性和高性能是企业应用的核心需求。随着用户量和业务量的增长,单台服务器往往难以承受高并发请求,容易成为性能瓶颈。此时,反向代理与负载均衡技术成为解决问题的关键——通过将请求分发到多台后端服务器,既能提升系统的整体处理能力,又能隐藏后端服务器的真实IP,增强安全性。本教程将详细介绍如何使用Nginx搭建反向代理与负载均衡集群,结合Tomcat实现动静分离,为企业应用打造稳定、高效的Web服务环境。
一、规划部署负载均衡和反向代理
在开始部署前,需明确各服务器的角色与IP地址,确保网络环境畅通:
- Nginx负载均衡器:作为前端入口,负责接收客户端请求并将请求分发到后端Tomcat服务器,IP地址为
192.168.10.10
,监听端口80
。 - Tomcat应用服务器1:运行Java Web应用,IP地址为
192.168.10.11
,监听端口8080
。 - Tomcat应用服务器2:运行Java Web应用,IP地址为
192.168.10.11
,监听端口8081
(同一服务器部署多实例,模拟多台服务器场景)。
通过这种架构,Nginx作为“流量调度中心”,将客户端请求均匀分发到后端Tomcat服务器,既提升了系统的并发处理能力,又降低了单台服务器的压力。
二、部署Nginx负载均衡器
Nginx的安装与配置是搭建反向代理集群的第一步。以下是详细步骤:
2.1. 准备基础环境
首先关闭防火墙和SELinux,避免网络访问限制:
systemctl stop firewalld
setenforce 0
安装Nginx所需的依赖包(用于编译安装):
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
2.2. 创建Nginx运行用户
为保证安全性,Nginx以非root用户身份运行:
useradd -M -s /sbin/nologin nginx
2.3. 编译安装Nginx
下载并解压Nginx源码包(以1.20.2
版本为例):
cd /opt
tar zxvf nginx-1.20.2.tar.gz -C /opt/
进入解压目录,配置编译选项:
cd /opt/nginx-1.20.2/
./configure \
--prefix=/usr/local/nginx \ # 安装目录
--user=nginx \ # 运行用户
--group=nginx \ # 运行组
--with-file-aio \ # 启用文件异步IO(提升静态文件处理性能)
--with-http_stub_status_module \ # 启用状态统计模块(查看Nginx运行状态)
--with-http_gzip_static_module \ # 启用gzip静态压缩(减少传输体积)
--with-http_flv_module \ # 启用FLV视频伪流支持
--with-http_ssl_module \ # 启用SSL模块(支持HTTPS)
--with-stream \ # 启用stream模块(支持四层负载均衡)
make &&
make install # 编译并安装
2.4. 配置Nginx系统服务
为了让Nginx随系统启动自动运行,需创建systemd服务文件:
vim /lib/systemd/system/nginx.service
添加以下内容(关键参数说明见注释):
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
设置服务权限并启动Nginx:
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service # 设置开机自启
2.5. 验证Nginx安装
在浏览器中访问http://192.168.10.10
,若出现Nginx欢迎页面,说明安装成功。
三、部署后端2台Tomcat应用服务器
Tomcat作为Java Web应用服务器,需部署两个实例以实现负载均衡的目标。以下是详细步骤:
3.1. 安装JDK
Tomcat依赖JDK运行,首先安装JDK 8:
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
配置JDK环境变量:
vim /etc/profile
添加以下内容:
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
使环境变量生效:
source /etc/profile
3.2. 部署Tomcat实例1
解压Tomcat源码包:
tar zxvf apache-tomcat-8.5.16.tar.gz
移动到指定目录并重命名:
mv /opt/apache-tomcat-8.5.16/ /usr/local/tomcat
启动Tomcat并验证端口:
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
netstat -ntap | grep 8080 # 检查8080端口是否监听
3.3. 部署Tomcat实例2
复制Tomcat实例1的目录,创建第二个实例:
cp -r /usr/local/tomcat /usr/local/tomcat1
修改Tomcat实例2的端口(避免与实例1冲突):
编辑/usr/local/tomcat1/conf/server.xml
,修改以下端口:
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
<Server port="8006" shutdown="SHUTDOWN" />
启动Tomcat实例2并验证端口:
/usr/local/tomcat/tomcat1/bin/shutdown.sh
/usr/local/tomcat/tomcat1/bin/startup.sh
netstat -ntap | grep 8081 # 检查8081端口是否监听
四、动静分离配置
动静分离是提升Web性能的关键策略,通过将静态资源(如HTML、CSS、JS、图片)与动态资源(如JSP、Servlet)分开处理,减少Tomcat的负载压力。以下是具体配置:
4.1. 配置Tomcat1的动态页面
创建动态页面目录并编写JSP文件:
mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp
添加以下内容(显示动态页面1的信息):
JSP test1 page
修改Tomcat1的server.xml
,配置虚拟主机:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
</Host>
重启Tomcat1:
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
4.2. 配置Tomcat2的动态页面
复制Tomcat1的动态页面目录,修改内容(当前tomcat为同一服务器):
mkdir /usr/local/tomcat/tomcat1/webapps/test
vim /usr/local/tomcat/tomcat1/webapps/test/index.jsp
添加以下内容(显示动态页面2的信息):
JSP test2 page
修改Tomcat2的server.xml
,配置虚拟主机:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat1/webapps/test" path="" reloadable="true" />
</Host>
重启Tomcat2:
/usr/local/tomcat/tomcat1/bin/shutdown.sh
/usr/local/tomcat/tomcat1/bin/startup.sh
4.3. 配置Nginx的动静分离
编辑Nginx的主配置文件:
vim /usr/local/nginx/conf/nginx.conf
在http
块中添加upstream
(负载均衡服务器池)和动静分离配置:
http {
# 定义负载均衡服务器池(权重可根据服务器性能调整)
upstream tomcat_server {
server 192.168.10.11:8080 weight=1;
server 192.168.10.11:8081 weight=1;
}
server {
listen 80;
server_name www.kgc.com;
charset utf-8;
# 动态请求转发到Tomcat集群 {~ .*\,jsp$(匹配大小写)|~*\.jsp$(不匹配大小写)}
location ~ .*\.jsp$ {
proxy_pass http://tomcat_server;
proxy_set_header Host $host; # 传递客户端请求的Host头
proxy_set_header X-Real-IP $remote_addr; # 传递客户端真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 传递代理链IP
}
# 静态图片请求(直接由Nginx处理,提升性能)
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
root /usr/local/nginx/html/img;
expires 10d; # 设置静态资源缓存时间(10天)
}
# 静态页面请求
location / {
root html;
index index.html index.htm;
}
}
}
检查Nginx配置语法并重启:
/usr/local/nginx/sbin/nginx -t # 检查配置是否正确
systemctl restart nginx.service # 重启Nginx
五、测试效果
5.1. 测试静态页面
在浏览器中访问http://192.168.10.10/
,若显示Nginx的默认静态页面,说明静态页面配置成功。
5.2. 测试静态图片
将图片1.png
复制到/usr/local/nginx/html/img
目录,访问http://192.168.10.10/1.png
,若显示图片,说明静态图片配置成功。
5.3. 测试负载均衡
在浏览器中反复访问http://192.168.10.11/index.jsp
,若交替显示“动态页面 1”和“动态页面 2”的内容,说明负载均衡配置成功(Nginx将请求分发到Tomcat1和Tomcat2)。
结语
通过本教程的部署,我们成功搭建了Nginx反向代理与负载均衡集群,并结合Tomcat实现了动静分离。这种架构不仅提升了Web应用的并发处理能力(Nginx处理静态请求,Tomcat处理动态请求),还通过负载均衡将请求分发到多台服务器,降低了单台服务器的压力,增强了系统的高可用性。
在实际生产环境中,还可以进一步优化配置:如开启Nginx的gzip压缩(减少传输体积)、配置SSL证书(实现HTTPS加密)、设置健康检查(自动剔除故障服务器)等。此外,结合Docker或Kubernetes等容器技术,可以实现更灵活的动态扩展,应对突发的流量高峰。
反向代理与负载均衡是企业Web架构的核心组件,掌握其部署与配置技能,将为打造高性能、高可用的Web服务奠定坚实基础。
相关文章:
实用指南:Nginx反向代理与负载均衡部署
实用指南:Nginx反向代理与负载均衡部署pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !importa…...
C# Avalonia 13- MoreDrawing - BlurEffects
C# Avalonia 13- MoreDrawing - BlurEffectsBlurEffects.axaml代码<Window xmlns="https://github.com/avaloniaui"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xm…...
【IEEE出版】第三届算法、图像处理与机器视觉国际学术会议(AIPMV2025)
由江苏科技大学、江苏大学、中国图象图形学学会联合主办,江苏科技大学计算机学院、镇江市计算机学会承办,镇江市软件行业协会、AEIC学术交流中心协办的第三届算法、图像处理与机器视觉国际学术会议(AIPMV2025)将于2025年9月26日-28日在江苏镇江召开。【江苏科技大学、江苏大…...
C++ - 了解STL的数据容器
CSP考试用的STL内容也越来越多了,我们有必要详细了解一下。 常用容器array 静态数组(大小固定,) vector 矢量(动态数组,大小可变) string 字符串 stack 栈 queue 队列 set 集合 map 键值对array 静态数组 array是固定大小的序列容器,array中包含特定个数并且严格按照线…...
收费详情
套餐价格_真免费!导出采集结果无任何限制_后羿采集器 https://www.houyicaiji.com/?type=pricing个人免费版 ¥ 0永久免费,不要积分智能模式:智能识别列表和分页,一键采集 流程图模式:可视化操作,可以模拟人为操作 采集任务:100个任务 支持多任务同时运行,无数量限制,…...
bluetoothctl UUIDs
数据 bluetoothctl 中的抓取数据: [CHG] Device 66:55:44:33:22:11 UUIDs: 1beeffff-0000-1000-8000-00805f9b34fb [CHG] Device 66:55:44:33:22:11 UUIDs: 4af678c8-0000-1000-8000-00805f9b34fb [CHG] Device 66:55:44:33:22:11 UUIDs: 5a079046-0000-1000-8000-00805f9b34f…...
ANOLIS8安装配置ldap账号登录
sudo dnf install -y openldap-clients nss-pam-ldapd authconfig配置 nslcd sudo vim /etc/nslcd.confuri ldap://your_ldap_server base dc=example,dc=com binddn cn=admin,dc=example,dc=com bindpw your_admin_password ssl no tls_cacertdir /etc/openldap/cacerts…...
实用指南:小程序非主页面的数据动作关联主页面的数据刷新操作
实用指南:小程序非主页面的数据动作关联主页面的数据刷新操作pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New"…...
【光照】[光照模型]是什么?以UnityURP为例
【从UnityURP开始探索游戏渲染】专栏-直达核心定义 光照模型是计算机图形学中用于模拟光线与物体表面相互作用的数学算法,它通过计算光能传播的物理特性,决定场景中每个像素的最终颜色值。其本质是求解光能传输方程的简化实现。 graph LR A[光源发射光子] --> B[与…...
从知识管理困境到高效协同:Gitee Wiki如何重塑研发团队的知识体系
从知识管理困境到高效协同:Gitee Wiki如何重塑研发团队的知识体系 在数字化转型浪潮中,知识管理已成为企业研发效能提升的关键瓶颈。许多技术团队都曾陷入"知识坟场"的困境——大量文档散落在不同平台,难以检索和维护,最终导致知识资产的价值流失。Gitee Wiki的出…...
cache和主存的映射方式
cache和主存的映射方式 全相联映射 主存块可以放在cache的任意位置 假设某个计算机的主存地址空间大小为256MB,按字节编址。 其数据cache有8个cache行,行长64B 由此可知,我们想要求出主存被分为多少块,就用256MB/64B =228/26=2^22 由于主存有28位,那么它就有22位用来表示主…...
PHP数组去重和集合有什么关系
PHP数组去重与集合:不止是简单的去重你可能会觉得PHP数组去重很简单,array_unique()不就搞定了吗? 但事情远没有那么简单。深入理解PHP数组去重,其实就触及到了集合论的一些核心概念,这能帮你写出更高效、更优雅的代码,避免一些常见的坑。这篇文章,咱们不玩虚的,直接深…...
kkFileView4.4.0 安装与使用
1、码云搜索kkfileview项目,下载项目源码(https://gitee.com/kekingcn/file-online-preview),或者直clone也可以,使用idea打开项目,使用maven加载项目所需要的依赖包2、使用maven进行打包 mvn package,然后 linux环境使用kkFileView.xx.tar.gz, windows使用kkFileView.…...
ubuntu22挂载windows server2019的共享文件夹
本文实现以下目标 1、win 2019 共享一个文件夹 2、ubuntu22访问win2019共享文件夹 ================== 在win2019文件上-右键-属性-共享 选择共享用户和密码。完成,此方法为20世界80年代的经典共享。今年2025年9月,建议寻找更好的共享方法,比如云盘、nas等等。在ubuntu22上…...
PHP数组去重适用于哪些场景
PHP数组去重:不止是array_unique()那么简单你可能觉得PHP数组去重很简单,array_unique()函数一用就完事了。但实际上,这只是冰山一角。 不同的场景下,对数组去重的需求和最佳方案大相径庭,盲目使用array_unique()可能会导致性能问题甚至结果错误。这篇文章,咱们就深入探讨…...
下载视频
1.下载ffmpeg放在电脑上,并设置成环境变量 2.下载yt-dlp,并设置成环境变量 3.下载脚本@echo off chcp 65001 >nul title YouTube Batch Downloader (Best Quality)setlocal enabledelayedexpansion:: 检查 yt-dlp.exe 是否存在 if not exist yt-dlp.exe (echo ERROR: yt-d…...
常用Linux配置
允许上下查看命令历史: vi ~/.bashrc添加 HISTFILESIZE=500 HISTSIZE=500 set -o history退出,输入 source ~/.bashrc 生效本文来自博客园,作者:mariocanfly,转载请注明原文链接:https://www.cnblogs.com/mariocanfly/p/19087376...
m1max可以装windows系统很卡吗
m1max可以装Windows系统很卡吗? 一、M1 Max芯片简介 M1 Max是苹果公司推出的一款高性能集成芯片,主要应用于MacBook Pro等高端产品中。它拥有强大的计算能力、图形处理能力和能效比,专为专业用户设计。M1 Max采用了先进的5纳米工艺制造,集成了高达10核的CPU、32核的GPU以及…...
1 | 移动语义:浅拷贝,深拷贝和引用拷贝,左值和右值
1、浅拷贝和深拷贝(和引用拷贝) 浅拷贝&深拷贝&引用拷贝?浅拷贝就是把表面的数据都拷贝一遍,但是指针指向的地址不会被拷贝。深拷贝就是所有的全部拷贝一遍。引用拷贝就是换个名字,指向的地址还是和原来一样。 2、左值和右值(和右值引用) 左值就是有具体…...
macbook air和windows系统区别
如何选择:MacBook Air与Windows系统的区别 一、引言 在当今这个数字化时代,个人电脑已经成为我们工作、学习和娱乐不可或缺的工具。面对市场上琳琅满目的电脑产品,如何选择一款适合自己的设备成为许多人关心的问题。其中,MacBook Air 和搭载 Windows 系统的电脑是两大主流选…...
Gitee:国产代码托管的领军者,助力企业应对CODING停服挑战
Gitee:国产代码托管的领军者,助力企业应对CODING停服挑战 在数字化转型浪潮中,软件开发效率成为企业核心竞争力的关键。近日,腾讯云旗下CODING DevOps系列产品宣布将于2028年9月30日全面停止服务,这一消息在开发者社区引发广泛关注。作为国产代码托管平台的标杆,Gitee凭借…...
锂电池外围均衡电路仿真
面对当前严峻的能源危机、环境污染等问题,开发研究电动汽车已成为汽车行业的主流方向,而目前高效稳定的动力电池是电动汽车研究领域的核心问题。因此,本项目研究电动汽车电池管理系统(BMS)的关键技术,探究准确估测电池的荷电状态(SOC)以及锂电池的外围均衡电路的设计方…...
Wireshark 学习笔记(一)
Wireshark 学习笔记 (一) 基础 图形界面和数据工具栏 主工具栏包含多个用于数据包嗅探和处理的菜单和快捷方式,包括过滤、排序、摘要、导出和合并。显示过滤栏 主要查询和过滤区域。近期文件 最近调查的文件列表。您可以通过双击调出列出的文件。捕获过滤器和接口 捕获过滤器以…...
ELF 文件结构与加载流程介绍
概述 ELF(Executable and Linkable Format)是一种在类 Unix 系统中广泛使用的文件格式,用于存储可执行文件、目标文件、共享库以及核心转储文件。它为操作系统提供了一种标准化的方式来表示程序的结构,使得操作系统能够正确加载、执行和调试程序。ELF 文件格式在 Linux 系统…...
灵码产品演示:Maven 示例工程生成
作者:轻眉 演示主题:由 AI 自动生成 0 到 1 的电商订单 Java 项目 演示目的 面向 Java 零基础的用户,通过灵码的产品能力(如提示词、编码智能体、项目 Rules 和 SQLite MCP 服务、单元测试)自动生成 0 到 1 的电商订单 Java 项目,使用 Maven 作为构建工具。 演示准备 1. …...
NocoBase 本周更新汇总:优化及缺陷修复
本周更新包括:邮件管理支持分批同步,工作流审批支持审批时退回到任意节点等。原文链接:https://www.nocobase.com/cn/blog/weekly-updates-20250912。 汇总一周产品更新日志,最新发布可以前往我们的博客查看。 NocoBase 目前更新包括的版本更新包括三个分支:main ,next和…...
CF1265E题解
题目。 设 $f_i$ 表示问完了前 $i-1$ 面镜子,还期望要多少天。 有 $f_i=p_i f_{i+1}+(1-p_i)f_1 +1,f_{n+1}=0$ ,答案即为 $f_1$ 。 将递推式变形,有 $f_i-f_1=p_i(f_{i+1}-f_1)+1$。 记 $g_i=f_i-f_1$,则 $g_i=p_i g_{i+1}+1,g_{i+1}=\frac{g_i-1}{p_i},g_1=f_1-f_1=0$。 …...
数组中的第K大元素
题目描述:给一个整数数组和一个正整数K,返回数组中第K大的元素。 思路1:堆排序(优先队列) 维护一个小顶堆,堆的大小限制为K,堆里面装的元素就是当前数组中前K大的元素。 这个思路非常简单,用STL的priority_queue直接就解决了,不需要过多阐述。 注意:priority_queue默…...
Gitee:本土开发者生态的崛起与数字化转型新范式
Gitee:本土开发者生态的崛起与数字化转型新范式 在数字经济加速发展的当下,代码托管平台已成为企业数字化转型的基础设施。作为国内领先的一站式DevOps平台,Gitee正通过其独特的本土化优势和技术创新,重塑着中国开发者的协作方式与效率标准。 Gitee的崛起并非偶然,而是中国…...
从本土化优势到全场景覆盖:Gitee如何重塑中国开发者的DevOps体验
从本土化优势到全场景覆盖:Gitee如何重塑中国开发者的DevOps体验 在数字化转型浪潮中,企业技术团队正面临前所未有的效率挑战。作为国内领先的代码托管与DevOps平台,Gitee通过深度适配本土生态的解决方案,正在重新定义中国企业的研发效能边界。最新数据显示,该平台已服务超…...
【2025-09-11】脆弱的睡眠
20:00日日行,不怕千万里。常常做,不怕千万事。——金缨《格言联璧》我发现现在每晚回到家,都要对着二宝的刷牙态度大吼几遍。她现在很不喜欢刷牙,各种借口,名种拖沓。我又想着能早点睡觉,有时不得不爆发点脾气,我知道对二宝是不起效的,但是累了一整天我也是没那个耐心去…...
即时通讯管理平台(后台管理)介绍文档
一、平台概述信贸通即时通讯管理平台(后台管理)是一款为企业及组织打造的全权限控制后台系统,旨在提供对用户、群组、消息及客户端配置的完全掌控能力。通过直观的操作界面与强大的底层架构,为业务运营提供坚实的数据支撑与高效的管理工具,助力企业实现内部沟通的安全化、…...
HC32F460串口重定向printf
HC32F460串口printf使用的是旧版官方库2.2.0,如果用的是新版库的话需修改,应该差不多 01 确认使用的引脚 需要通过F460数据手册的2.2章节【引脚功能表】确认引脚在功能组里,最后一列不为空的引脚就是可使用的根据分组自行确认使用的是UARTx02 初始化串口 通过官方的串口轮询…...
一个我很喜欢的故事
很久很久以前,有一位善良的少年。他的朋友被恶咒所噬,从此陷入了沉眠。 “你要寻找解开恶咒的方法,因为沉睡的人没有痛苦,但也无从感受到幸福。” 于是少年捡起勇气做出箭,抽出心脏做成枪。为了不被割裂开,穿上和朋友一样,石头所制的铠甲。 他背起石棺走在路上,脚下踩着…...
paraview将所有时间步下的数据导入到同一个文件中
[*********通义千问回答版本*********] 步骤如下:加载你的数据点击 File → Open 打开你的数据文件(如 .vtk, .vtu, .pvd, .h5, .nc 等支持多时间步的格式)。 确保时间信息已正确读取:在左上角的 "Pipeline Browser" 中选中你的数据源,查看 "Information&q…...
代码托管新视野:打造本土化研发协作平台,赋能企业敏捷开发新范式
Gitee:打造本土化研发协作平台,赋能企业敏捷开发新范式 在数字化转型的浪潮中,代码托管平台已成为现代企业研发效能的核心基础设施。作为国内领先的代码托管与协作平台,Gitee凭借其本土化优势与技术创新,正在重新定义企业级研发协作模式。该平台不仅解决了跨国平台在国内使…...
202312_DASCTF_找找找
snow雪花隐写,文件分离Tags:snow雪花隐写,文件分离 0x00. 题目 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:202312_DASCTF_找找找的附件.zip 0x01. WP 01 十六进制编辑器查看文件 文件发现末尾有flag特征码,Base64解…...
浅谈博弈论
Bash游戏 这很简单,手玩两组样例就找到规律了。只有一堆石子,个数为 \(n\) 个,两名玩家轮流在石子堆中拿石子,每次至少取 \(1\) 个,至多取 \(m\) 个,最后一个取走石子的玩家为胜者。实际上,\((m+1)\ |\ n\) 时必胜。 Nim游戏\(n\) 堆物品,每堆 \(a_i\) 个,两个玩家轮流…...
pyinstaller 打包
# app.spec from PyInstaller.utils.hooks import collect_data_files, collect_submodulesdatas = [(templates/*, templates), # 递归包含 templates 下所有文件和子目录(front/dist/*, static), # 递归包含 static 下所有内容(front/dist/assets/*, static/assets),…...
基于STM32单片机与OV2640摄像头实现边缘检测
基于STM32单片机与OV2640摄像头实现边缘检测一、硬件配置方案 1. 接口连接(以STM32F407为例) OV2640 STM32F407 ---------------------- XCLK → HCLK(系统时钟) PCLK → DCMI_PIXCLK HSYNC → DCMI_HSYNC VSYNC → DC…...
替代FTP的国产传输软件哪个好?国产化文件传输工具推荐
在数字化转型浪潮中,文件传输已成为企业日常运营的核心环节。然而,传统FTP协议因存在三大致命缺陷,已难以满足现代企业的安全与效率需求,所以很多行业和机构都在寻找替代FTP的国产传输软件。首先我们来看看传统FTP有何不足,为什么需要替代FTP的国产传输软件? 1、安全漏洞…...
模拟运输振动试验台:保障产品运输安全的关键设备
在现代产品生产和供应链管理中,运输是产品从制造商到消费者的重要环节。然而,产品在运输过程中可能遭遇到各种不可控的振动和冲击,这些外力会导致产品的损坏、质量下降,甚至直接影响其使用性能。因此,为了确保产品在运输过程中的安全性,模拟运输振动试验台应运而生,成为…...
数据结构与算法-29.图-广度优先搜索
1、广度优先搜索概述 2、以上仅供参考,如有疑问,留言联系...
政务外网和互联网啥关系
政务外网不是互联网,它跟互联网是**“物理隔离”或“逻辑隔离”**的关系,一句话: 政务外网是政府自己建的“专用公路”,互联网是公共大马路,两者平时各跑各的车,只在指定检查站才能换乘。...
什么是文件摆渡系统?从应用到优势全面解读!
在数字化转型深入推进的当下,企业为保护核心数据资产,普遍采用网络隔离技术,将内部网络(如研发网、办公网、生产网)与外部互联网或不同安全级别的子网分隔开来。什么是文件摆渡系统?它正是一种能在隔离网络环境中,实现安全、可靠、高效数据传输与交换的专用系统,如同在…...
wpf xaml数据绑定时,寻找数据源的几种方式 (RelativeSource)
wpf xaml数据绑定时,寻找数据源的几种方式 (RelativeSource)RelativeSource 类在 WPF 中提供了以下几种模式: RelativeSource Self:指定当前元素作为相对源。可以在当前元素的属性中绑定到自身的属性。示例: <TextBlock Text="{Binding Text, RelativeSource={Re…...
背负冲击试验机的设计原理与性能优化
背负冲击试验机是一种用于测试各种产品或包装材料在遭受背负冲击时的性能表现的设备,广泛应用于包装、运输、航空航天、汽车和电子等多个领域。通过模拟物品在运输、搬运等过程中可能遇到的冲击情况,评估其抗冲击性、耐压性及稳定性,帮助企业改进产品设计和包装方案,以确保…...
钢球落球试验机对汽车玻璃的测试应用
在汽车行业中,钢球落球试验机主要用于测试材料的抗冲击性能、耐久性以及安全性,确保零部件在制造、使用过程中能够承受外力冲击,符合行业标准和法规要求。行驶中的汽车玻璃要经受严格的冲击考验。(1)确保挡风玻璃/侧窗玻璃飞石撞击的安全性 汽车高速行驶过程中,挡风玻璃、…...
基于STM32F047的ADS1299数据采集与低通滤波系统实现
基于STM32F047的ADS1299数据采集与低通滤波系统实现:一、硬件设计要点 1. 核心电路连接 STM32F047 ADS1299 ---------------------- SPI1_SCK (PA5) → SCLK SPI1_MOSI (PA7) → DIN SPI1_MISO (PA6) → DOUT PA4 (GPIO) → CS PB0 (GPIO) → DRDY 3.3V …...
军工企业涉密网文件导出用什么系统?答案在这里
军工企业涉密网文件导出,还是有很严格的要求的。首先基本都是物理隔离状态,而且很多时候又不允许随意的添加软硬件设备。所以军工企业涉密网文件导出是面临不少挑战的。1、文件合规导出管理 军工企业必须保证从保密网导出的文件严格遵循国家法律法规及保密规定。导出的所有文…...