当前位置: 首页 > news >正文

Server 13 ,CentOS 上使用 Nginx 部署多个前端项目完整指南( 协助多端口与脚本自动化 )

Server 13 ,CentOS 上使用 Nginx 部署多个前端项目完整指南( 协助多端口与脚本自动化 )

目录

前言
一、实际背景
1.1 并行部署
1.2 接口代理
1.3 刷新问题
二、安装脚本
2.1 创建脚本
2.2 不同系统
2.3 执行完成
三、配置文件
3.1 配置文件
3.2 目录结构
3.3 重新启动
四、验证访问
五、问题排查
5.1 访问 404
5.2 接口 502
六、本文总结
6.1 清理旧环境
6.2 防火墙策略
6.3 实现的成果
七、更多操作

前言

首先,CentOSUbuntu都是基于Linux内核的开源发行版,但它们在起源生态应用场景上存在显著差异。了解它们的“血缘”关系有助于选择合适的系统进行Nginx部署。

CentOS(Community Enterprise Operating System)于2004年3月首次发行,是RHEL的免费克隆版,通过重新编译RHEL源代码去除品牌标识而成。RHELRed Hat公司开发,面向企业。CentOS 7.9.2009作为CentOS 7系列的最终版本,于2020年9月发布,支持到2024年6月,但因Red Hat策略变更,转向CentOS Stream作为滚动更新版。

Ubuntu2004年10月发行,由Canonical公司维护,基于Debian GNU/LinuxDebian由社区驱动,强调稳定,Ubuntu在其基础上优化了用户体验,每6个月发布新版,每2年一个LTS(Long Term Support)版,如Ubuntu 24.04 LTS支持到2029年

关系上,CentOSUbuntu无直接血缘,但同属Linux家族CentOS继承RHEL的企业级稳定性,适合生产服务器Ubuntu继承Debian的包管理,适合桌面云环境

然而在日常的前端项目部署过程中,许多团队会面临以下典型问题:

  1. 同一台服务器需要部署多个前端项目,且每个项目独立运行,互不干扰。

  2. 后端接口需要代理,前后端分离部署后,需要通过 Nginx 将请求转发到不同的后端服务。

  3. 端口管理混乱:如果部署多个项目在同一个端口,维护会复杂;如果不规划端口,防火墙管理将变得困难。

  4. 前端项目刷新 404 问题:Vue、React 等 SPA 项目刷新时常常出现 404 错误。

本文将详细介绍如何通过 Nginx 在 CentOS 服务器上,为不同前端项目分配独立端口进行部署,并实现以下目标:

  1. 不同前端项目独立端口管理,互不干扰;

  2. 每个项目对应独立后端接口代理,支持前后端分离架构;

  3. 解决 SPA 项目刷新 404 问题

  4. 提供 自动化安装脚本,简化部署流程;

  5. 涵盖从 安装、配置、排错到防火墙管理 的完整流程。

一、实际背景

部署背景与需求分析

1.1 并行部署

多个项目并行部署:假设我们的服务器上需要部署以下三个前端项目:

项目名称本地路径访问端口访问地址
Dlxj_Csj/usr/local/nginx/html/Dlxj_Csj/80http://192.168.110.125/
Hs_Csj/usr/local/nginx/html/Hs_Csj/81http://192.168.110.125:81/
Yk_Csj/usr/local/nginx/html/Yk_Csj/82http://192.168.110.125:82/

这样每个项目都拥有独立的访问地址,不会相互影响,便于维护和扩展。

1.2 接口代理

后端接口代理:三个前端项目的接口访问需求不同,因此需要配置不同的后端地址:

项目名称接口路径后端服务地址
Dlxj_Csj/prod-api/http://192.168.110.44:9013/
Hs_Csj/prod-api/http://192.168.110.97:8080/
Yk_Csj/prod-api/http://192.168.110.97:8080/

通过 Nginx 的 proxy_pass 功能,可以轻松实现接口转发,让前端项目无感知地访问后端服务。

1.3 刷新问题

刷新 404 问题:SPA 前端项目如 Vue、React 等使用前端路由控制,刷新页面时,Nginx 默认会将请求直接发送到后端或文件系统,如果找不到对应文件,就会返回 404 Not Found

解决方案
使用 try_files 配置,将所有无法匹配的路由重定向到 index.html,例如:

location / {
    try_files $uri $uri/ /index.html;
}


二、安装脚本

Nginx 自动化安装脚本。为了避免手动安装的繁琐操作,这里提供一个一键自动安装 Nginx 的脚本,自动完成安装、配置、启动及防火墙设置。

2.1 创建脚本

粘贴以下内容:

#!/bin/bash
# ==========================================================
# Nginx 一键安装脚本 for CentOS 7/8
# 适用于多项目、多端口部署场景
# ==========================================================
NGINX_VERSION="1.24.0"
INSTALL_DIR="/usr/local/nginx"
SRC_DIR="/usr/local/src"
LOG_FILE="/var/log/nginx_install.log"
echo "========== 开始安装 Nginx =========="
# 1. 检查是否为 root 用户
if [ "$(id -u)" != "0" ]; then
echo "[错误] 请使用 root 用户运行此脚本!"
exit 1
fi
# 2. 安装必要依赖
echo "[步骤] 安装依赖中..."
yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel wget >> $LOG_FILE 2>&1
if [ $? -ne 0 ]; then
echo "[错误] 依赖安装失败,请检查 yum 源!"
exit 1
fi
# 3. 下载 Nginx 源码
mkdir -p $SRC_DIR
cd $SRC_DIR
if [ ! -f "nginx-${NGINX_VERSION}.tar.gz" ]; then
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz >> $LOG_FILE 2>&1
fi
# 4. 编译安装
tar -zxvf nginx-${NGINX_VERSION}.tar.gz >> $LOG_FILE 2>&1
cd nginx-${NGINX_VERSION}
./configure --prefix=$INSTALL_DIR --with-http_ssl_module --with-http_stub_status_module >> $LOG_FILE 2>&1
make && make install >> $LOG_FILE 2>&1
if [ $? -eq 0 ]; then
echo "[成功] Nginx 安装完成!"
else
echo "[错误] Nginx 编译或安装失败,请查看日志:$LOG_FILE"
exit 1
fi
# 5. 配置 systemd 服务
cat > /usr/lib/systemd/system/nginx.service <

该脚本为 CentOS 7/8 系统提供 Nginx 一键安装功能,具体操作包括:

  1. 检查是否以 root 用户运行,安装编译 Nginx 所需的依赖;
  2. 下载指定版本(1.24.0)的 Nginx 源码并编译安装到指定目录;
  3. 配置 systemd 服务以便管理 Nginx 启停,同时设置开机自启;
  4. 开放防火墙 80、81、82 端口;最后创建三个项目目录,

实现多项目、多端口部署的基础配置,完成后可通过对应端口访问不同项目。

一般情况下,粘贴后,脚本会直接执行。

2.2 不同系统

这个是支持 CentOS 和 Ubuntu 双系统 的一键安装脚本:

#!/bin/bash
# ==========================================================
# Nginx 一键安装脚本 for CentOS 7/8 / Ubuntu 18+
# 支持多项目、多端口部署场景
# 自动检测系统类型,并选择合适的安装方式
# ==========================================================
NGINX_VERSION="1.24.0"
INSTALL_DIR="/usr/local/nginx"
SRC_DIR="/usr/local/src"
LOG_FILE="/var/log/nginx_install.log"
echo "========== 开始安装 Nginx =========="
# 1. 检查是否为 root 用户
if [ "$(id -u)" != "0" ]; then
echo "[错误] 请使用 root 用户运行此脚本!"
exit 1
fi
# 2. 检测系统类型
if [ -f /etc/redhat-release ]; then
OS="CentOS"
elif [ -f /etc/lsb-release ] || [ -f /etc/debian_version ]; then
OS="Ubuntu"
else
echo "[错误] 不支持的操作系统,请使用 CentOS 或 Ubuntu!"
exit 1
fi
echo "[步骤] 检测到系统类型:$OS"
# 3. 安装必要依赖
echo "[步骤] 安装编译依赖..."
if [ "$OS" = "CentOS" ]; then
yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel wget tar >> $LOG_FILE 2>&1
else
apt update -y
apt install -y gcc g++ make libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev wget tar >> $LOG_FILE 2>&1
fi
if [ $? -ne 0 ]; then
echo "[错误] 依赖安装失败,请检查网络或软件源配置!"
exit 1
fi
# 4. 下载 Nginx 源码
mkdir -p $SRC_DIR
cd $SRC_DIR
if [ ! -f "nginx-${NGINX_VERSION}.tar.gz" ]; then
echo "[步骤] 下载 Nginx 源码..."
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz >> $LOG_FILE 2>&1
if [ $? -ne 0 ]; then
echo "[错误] 下载 Nginx 失败,请检查网络!"
exit 1
fi
fi
# 5. 编译安装 Nginx
echo "[步骤] 开始编译 Nginx..."
tar -zxvf nginx-${NGINX_VERSION}.tar.gz >> $LOG_FILE 2>&1
cd nginx-${NGINX_VERSION}
./configure --prefix=$INSTALL_DIR --with-http_ssl_module --with-http_stub_status_module >> $LOG_FILE 2>&1
make && make install >> $LOG_FILE 2>&1
if [ $? -eq 0 ]; then
echo "[成功] Nginx 编译安装完成!"
else
echo "[错误] Nginx 编译或安装失败,请查看日志:$LOG_FILE"
exit 1
fi
# 6. 配置 systemd 服务
echo "[步骤] 配置 systemd 服务..."
cat > /usr/lib/systemd/system/nginx.service <

这个脚本会自动检测系统类型,然后选择正确的包管理工具(yumapt),安装依赖、编译、配置并启动 Nginx,同时设置开机自启和项目目录。这样你在 CentOS 或 Ubuntu 上都能直接执行。

2.3 执行完成

执行完成后,验证服务状态:

systemctl status nginx

相关命令:

操作命令
启动 Nginxsystemctl start nginx
停止 Nginxsystemctl stop nginx
重启 Nginxsystemctl restart nginx
查看状态

systemctl status nginx

平滑重载配置systemctl reload nginx
检测配置文件nginx -t
查看访问日志tail -f /usr/local/nginx/logs/access.log
查看错误日志tail -f /usr/local/nginx/logs/error.log
开机自启systemctl enable nginx
取消开机自启systemctl disable nginx


三、配置文件

Nginx 配置文件

3.1 配置文件

这里需要配置文件内容,文件位置:

/usr/local/nginx/conf/nginx.conf

将内容修改为以下版本:

user nobody;
worker_processes auto;
error_log logs/error.log error;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" "$http_user_agent"';
access_log logs/access.log main;
# ===== 项目 1: Dlxj_Csj =====
server {
listen 80;
server_name localhost;
root /usr/local/nginx/html/Dlxj_Csj;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
location ^~/prod-api/ {
proxy_pass http://192.168.110.44:9013/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;
}
}
# ===== 项目 2: Hs_Csj =====
server {
listen 81;
server_name localhost;
root /usr/local/nginx/html/Hs_Csj;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
location ^~/prod-api/ {
proxy_pass http://192.168.110.97:8080/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;
}
}
# ===== 项目 3: Yk_Csj =====
server {
listen 82;
server_name localhost;
root /usr/local/nginx/html/Yk_Csj;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
location ^~/prod-api/ {
proxy_pass http://192.168.110.97:8080/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;
}
}
}

3.2 目录结构

/usr/local/nginx/html/
├── Dlxj_Csj
│   └── index.html
├── Hs_Csj
│   └── index.html
└── Yk_Csj
    └── index.html

3.3 重新启动

重启 Nginx

systemctl restart nginx


四、验证访问

项目URL
Dlxj_Csjhttp://192.168.110.125/
Hs_Csjhttp://192.168.110.125:81/
Yk_Csjhttp://192.168.110.125:82/

访问对应地址,确认页面是否正常加载。


五、问题排查

5.1 访问 404

  1. 检查项目目录下是否有 index.html 文件;

  2. 确认 Nginx 配置文件 root 路径与项目目录一致。

5.2 接口 502

  • 后端服务未启动或 IP/端口配置错误;

  • 使用以下命令确认端口状态:netstat -tunlp | grep 9013


六、本文总结

6.1 清理旧环境

清理旧 Nginx 环境

# 1. 停止并禁用 Nginx 服务
sudo systemctl stop nginx
sudo systemctl disable nginx
sudo systemctl status nginx
# 2. 删除 systemd 服务文件
sudo rm -f /usr/lib/systemd/system/nginx.service
sudo rm -f /etc/systemd/system/nginx.service
sudo systemctl daemon-reload
# 3. 删除 Nginx 安装目录及源码
sudo rm -rf /usr/local/nginx
sudo rm -rf /usr/local/src/nginx-*
# 4. 清理残留进程
sudo pkill -9 nginx
# 5. 删除 nginx 用户(可选)
sudo userdel nginx

清理旧 Nginx 环境,最终脚本(可直接执行),适用于 CentOS 和 Ubuntu:

#!/bin/bash
# ==============================================
# Nginx 清理脚本,彻底删除旧环境
# 适用系统:CentOS 7/8、Ubuntu 18+
# ==============================================
echo "========== 开始清理 Nginx 旧环境 =========="
# 1. 停止并禁用 Nginx 服务
echo "[步骤] 停止 Nginx 服务..."
systemctl stop nginx 2>/dev/null
systemctl disable nginx 2>/dev/null
systemctl status nginx || echo "Nginx 服务已停止"
# 2. 删除 systemd 服务文件
echo "[步骤] 删除 systemd 服务文件..."
rm -f /usr/lib/systemd/system/nginx.service
rm -f /etc/systemd/system/nginx.service
systemctl daemon-reload
# 3. 删除安装目录
echo "[步骤] 删除 Nginx 安装目录..."
rm -rf /usr/local/nginx
rm -rf /usr/local/src/nginx-*
# 4. 清理残留进程
echo "[步骤] 检查并清理残留进程..."
pkill -9 nginx 2>/dev/null || echo "无残留进程"
# 5. 删除 Nginx 用户(可选)
echo "[步骤] 检查并删除 nginx 用户..."
if id "nginx" &>/dev/null; then
userdel nginx
echo "nginx 用户已删除"
else
echo "nginx 用户不存在"
fi
echo "========== 清理完成 =========="
echo "提示:如需重新安装,请重新运行安装脚本。"

该脚本 彻底清理旧的 Nginx 环境,包括停止并禁用 Nginx 服务、删除 systemd 服务文件、清空安装目录和源码、清理残留进程,以及可选删除 Nginx 用户。执行后,系统中原有的 Nginx 及相关文件将被完全移除,为重新安装和部署新的 Nginx 环境做好准备。

6.2 防火墙策略

以下命令用于开放 Nginx 使用的端口,并使修改立即生效:

# 开放项目1端口 80
firewall-cmd --permanent --add-port=80/tcp  

# 开放项目2端口 81
firewall-cmd --permanent --add-port=81/tcp  

# 开放项目3端口 82
firewall-cmd --permanent --add-port=82/tcp  

# 重新加载防火墙策略,使修改生效
firewall-cmd --reload  

如果你是通过前面提供的一键安装脚本部署 Nginx,防火墙端口已经开放,无需重复执行上述命令;仅在手动安装或需要修改端口策略时才需要执行这些命令。

6.3 实现的成果

通过上述部署和配置,我们成功实现了三个前端项目的独立部署和访问管理。具体成果如下:

  1. 三个前端项目分端口独立部署,每个项目互不干扰;

  2. 每个项目都配置了独立的后端接口代理,确保数据请求正确转发;

  3. 访问路径清晰,运维人员和开发人员易于管理;

  4. 单页面应用刷新不再出现 404 问题,用户体验良好;

  5. 一键脚本自动化安装、配置 Nginx,大幅降低人工操作成本,提高部署效率。

经过此方案,服务器上的多前端项目管理更加规范、安全、高效,为后续运维和升级提供了可靠基础。


七、更多操作

请看,Server 个人专栏

Server​https://blog.csdn.net/weixin_65793170/category_12128287.html

相关文章:

Server 13 ,CentOS 上使用 Nginx 部署多个前端项目完整指南( 协助多端口与脚本自动化 )

Server 13 ,CentOS 上使用 Nginx 部署多个前端项目完整指南( 协助多端口与脚本自动化 )pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&quo…...

洛谷P2490 [SDOI2011] 黑白棋

传送门 首先容易想到,白色棋子与其右边的黑色棋子越靠越近,最后挨在一起,与其他棋子无关。 朴素地想到 \(NimK\) 的建模,一共有 \(\dfrac{k}{2}\) 堆石子,每次取 \(d\) 堆。 注意到必胜局面比较难求,适合正难则反,用总方案数 \(\dbinom{n}{k}\) 减去必败局势。 难点在于…...

WGCLOUD的告警日志在哪儿存贮的?

WGCLOUD所有发送的告警消息都存贮在【系统日志】模块里 WGCLOUD系统日志功能模块,用于存贮系统操作的各种记录,也包括各种系统运行的日志信息,告警通知信息,告警恢复信息 所有系统运行产生的错误日志,操作日志,告警日志都会记录在系统日志中 系统日志记录只能查看,不能删…...

传统软件部署的痛点

这是对之前《Docker 容器化》文章的一个补充 在 Docker 等容器技术普及前,开发、测试、运维团队常被环境不一致、部署复杂、资源浪费、扩容低效为典型的问题困扰,这些问题不仅可能导致项目的交付周期的延后,还会引发跨团队协作矛盾,甚至导致线上故障,我们逐一来看每个问题…...

HarmonyOS 5分布式数据管理初探:实现跨设备数据同步

本文将引导您了解HarmonyOS 5的分布式数据管理能力,并通过一个简单的示例演示如何实现跨设备数据同步。1. 分布式数据管理简介 HarmonyOS的分布式数据管理能力允许应用程序在多个设备之间无缝地同步和共享数据。它抽象了底层设备差异,让开发者可以像操作本地数据一样处理跨设…...

qoj965 Trade

题意 有 \(n\) 件商品,第 \(i\) 件商品有基准价格 \(c_i\) 和抬价价格 \(p_i\),\(p_i\) 互不相同,每件商品只能买一件,你有 \(S\) 元钱。 若你买了 \(k\) 件商品,则第 \(i\) 件商品的价格为 \(c_i+k\times p_i\)。问你最多能买多少件商品。 \(1\le c_i\le 10^9,0\le p_i,S…...

复盘我的第一个 大模型Agent:从核心循环到模块化架构的演进之路

本文将以我编写的一个 Go Agent Demo 为例,穿透各类框架的表层封装,回归其工程本质。我将首先分析其核心的 ReAct 循环,并展示这个看似简单的循环是如何通过模块化设计,演进为一个结构化、可扩展的软件系统。最近,我投入了一些时间学习和研究大语言模型(LLM)驱动的 Agen…...

Linux内核不使用bear如何快速生成compile_commands.json使用vscode阅读源码

野火鲁班猫SDK 进入内核目录 cd /opt/LubanCat_SDK/kernel-5.10 编译内核 ../build.sh kernel 生成compile_commands.json /opt/LubanCat_SDK/kernel-5.10/scripts/clang-tools/gen_compile_commands.py打开vscode code . 安装clangd插件 打开一个c文件 开始生成clangd数据库...

Docker 容器化

引言 在解释docker是什么之前,我们首先应该先了解的是容器化的概念。 什么是容器?就是一个沙箱,在这个沙箱中涵盖了特定应用运行的一切依赖的内容。但他不是一个操作系统,且和底层的操作系统是隔离的。 什么是容器化?容器化就是将软件和应用所需要的所有依赖打包到一个独立…...

phpmyadmin漏洞利用

1、信息搜集 1.1、版本号 访问/README /doc/html/index.html获取版本信息1.2、绝对路径 (1) phpinfo() 页面:最理想的情况,直接显示web路径 (2) web报错信息:可以通过各种fuzz尝试让目标报错,也有可能爆出绝对路径 (3) 一些集成的web框架:如果目标站点是利用phpstudy、LAM…...

CF19E Fairy

题意:给定一个无向图,$n,m \le 10^4$,需对每个点黑白染色,使每条边两端点颜色不同,求对每一条边,删除该边后是否存在合法染色方案。思路:合法染色方案即删除边后图为二分图,不存在奇环。先构造 dfs 生成树,将一条非树边和其覆盖树边形成的环称为基本环,包含多个非树边…...

Wireshark 学习笔记(二)

Wireshark 学习笔记 (二) 数据包操作 统计|摘要 统计 此菜单提供多种统计选项,可供调查,帮助用户了解流量范围、可用协议、端点和会话等宏观情况,以及一些特定协议的详细信息,如 DHCP、DNS 和 HTTP/2。 解析地址 此选项通过提供解析地址及其主机名的列表,帮助分析师识别捕…...

鸿蒙应用开发从入门到实战(三):第一个鸿蒙应用

持续分享IT技术,帮你少走弯路。《鸿蒙应用开发从入门到项目实战》系列文章持续更新中。本文使用DevEco Studio创建应用,并使用预览、模拟器、真机三种方式进行调试。​ 大家好,我是潘Sir,持续分享IT技术,帮你少走弯路。《鸿蒙应用开发从入门到项目实战》系列文章持续更…...

Litctf2025 Write-up

逼逼叨 很难受啊,出去跑项目封闭管理,结果没打上,只能赛后复现了。 上班是真滴累 Web [LitCTF 2025]多重宇宙日记进来先随便注册个账户,说实话看到这样的题目第一眼怀疑二次注入、直接不想做登陆后发现可以设置主题语言之类的,随便试试无果查看页面源码摘出JS中的关键代码…...

DFS算法(递归)

DFS算法(递归) DFS(Depth-First Search,深度优先搜索)是一种用于遍历或搜索树、图等数据结构的算法。其核心思想是:沿着一条路径尽可能深入地探索,直到无法继续前进(遇到已访问节点或无未访问邻接节点),再回溯到上一个节点,选择另一条未探索的路径继续深入。所以可以…...

博客园出海记

在开篇中我们宣布了博客园出海计划的启航,出海航船选择了阿里云。第一件准备工作是在航船上组装集装箱 —— 搭建 Kubernetes 集群。出海根据地选在了阿里云新加坡机房,Kubernetes 集群用阿里云 ECS 自己搭建,没有使用阿里云容器服务 ACK。首先购买一台 ECS 用于部署 Contro…...

vue3 - pinia状态管理库

概念 Pinia 是 Vue 官方推荐的状态管理库,是 Vuex 的继任者(Vuex 作者同一人开发),专门为 Vue 3 设计,完全支持 Composition API 和 TypeScript。它简化了状态管理的流程,提供了更简洁的 API 和更好的开发体验。 核心特点简洁的 API 去掉了 Vuex 中的 mutation(突变),…...

做会议海报就是在淘汰老实人

还好有模板直接用!不仅节省更多时间,做出来的ppt,或是学术海报既清晰又美观,导师看了都说好! ppt和学术海报都是可直接编辑的哦!每张文件图片均获取网络,仅供学习与研究交流使用。支持原创! 感兴趣可直接无套路领取 【450+学术会议海报poster模板】+【600+学术汇报PPT模…...

ubuntu24.04安装mysql5.7.42

环境Os:ubuntu 24.04 desktop桌面版mysql:5.7.42 说明: a.ubuntu24下安装mysql 5.7 使用的依赖库 需要创建软连接指向新的依赖库.查看操作系统信息root@hxl-VirtualBox:/# uname -a Linux hxl-VirtualBox 6.14.0-29-generic #29~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Aug 14…...

易基因:Cell封面:中国科学家杨学勇/黄三文m6A-seq等揭示同义突变通过表观转录调控机制决定生物性状|顶刊突破

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 近日,中国农业科学院蔬菜花卉研究所杨学勇研究员、中国农业科学院深圳农业基因组所黄三文研究员和英国约翰英纳斯中心丁一倞研究员团队合作,以封面文章形式在顶刊《Cell》(细胞)上发表题为“Recessive epi…...

一文看懂Deepspeed:用ZeRO训练大模型原理解析及参数含义解释

实际训练中Deepspeed参数配置ZeRO各stage含义是什么,offload以及gradient checkpoint是如何起作用的,本篇基于ZeRO不同stage含义,以及实践时参数含义来阐述Deepspeed原理。 这几天在做大模型的微调,发现几乎所有都用到了deepspeed,这里给大家提供一个ChatGLM2在ptuning模式…...

AC-DC整流器双闭环控制MATLAB/Simulink仿真

AC-DC整流器双闭环控制系统的MATLAB/Simulink仿真程序,包含电压外环和电流内环控制。 这个仿真实现了一个三相PWM整流器的双闭环控制:电压外环:控制直流侧输出电压,提供电流内环的参考信号 电流内环:控制网侧电流,实现单位功率因数运行MATLAB:参数设置与仿真启动 % AC-D…...

新娘化妆 造型 美甲 护肤 资料合集

化妆的核心--眉妆 眉毛的结构认识眉毛主要由眉头眉峰眉尾眉头在鼻翼外侧到内眼角的垂直线上眉峰在眉头到眉尾的三分之二处, 是鼻翼外侧至人眼平视前方时外眼球的延长线上。眉腰眉头与眉峰中间称之为眉腰眉尾在鼻翼外侧到外眼角的 延长线上,或则嘴角到外眼角的延长线上。 标准…...

rabbitMQ-基础day1 - a

微服务一旦拆分,必然涉及到服务之间的相互调用,目前我们服务之间调用采用的都是基于OpenFeign的调用。这种调用中,调用者发起请求后需要等待服务提供者执行业务返回结果后,才能继续执行后面的业务。也就是说调用者在调用过程中处于阻塞状态,因此我们成这种调用方式为同步调…...

实用指南: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和…...