RuoYi-Vue项目阿里云ECS部署实战:环境搭建与Nginx反向代理全流程
我前后折腾了两天把一个基于 RuoYi若依框架的前后端分离项目从本地 Windows 环境完整搬到阿里云 ECS 上期间踩了不少坑也把之前零散的经验串了起来。这篇东西就专注讲一件事RuoYi-Vue 项目如何一步步上云从选服务器、装环境、改配置、打到项目包、配 Nginx到最后用域名访问每个环节我都会把为什么要这么做的原因说清楚。这套流程适合正在学 Spring Boot Vue 部署的开发者也适合第一次接触 Linux 环境、对云服务器没有太多经验的新手。读完你至少能自己动手复现一遍把项目真正跑在公网上。1. 上云方案与整体设计1.1 RuoYi 项目的架构决定了部署方式RuoYi-Vue 是典型的单体后端加静态前端分离结构。后端由多个 Maven 模块组成核心的ruoyi-admin是启动入口打包后会生成一个可直接运行的 Spring Boot jar 包。前端是 Vue 工程构建后生成一批静态文件包括 html、js、css它们需要被 Nginx 这类 Web 服务器托管再由 Nginx 把接口请求反向代理到后端 jar 包上。项目依赖层面RuoYi 主要需要三个运行时组件MySQL 存业务数据Redis 做验证码存储、Session 管理还有一个 JDK 8 环境来跑 jar 包。这些依赖对服务器性能要求并不高单台 2 核 4G 的 ECS 完全可以承载甚至个人学习用 2 核 2G 也够跑只是带负载项目或生成大量日志时会紧张一些。明确了这一点部署方案就清晰了后端 jar 包放服务器上用 Java 命令启动前端静态文件放在 Nginx 的站点目录下Nginx 同时负责把 API 请求转发到后端的 8080 端口。这个方案没有引入不必要的微服务和容器编排结构简单、出问题容易排查对中小项目和个人项目来说是最稳的做法。1.2 部署架构如何规划我在规划阶段做过两个选择一是用 Docker Compose 把 MySQL、Redis、后端、前端全部容器化二是直接在系统里安装依赖传统方式部署。最终我选了第二种原因是 RuoYi 本身不需要弹性扩容容器化在这里带来的好处有限反而增加了网络和卷映射的排错成本。第一次上云的重点是跑通流程、理解每个组件的作用传统方式能让每一步都看得见摸得着排查问题也更直接。目录和端口的规划我提前定了下来这比临时想起来什么装什么要高效得多项目数据放在/data/app下jar 包和日志都统一在这里前端静态文件放在/data/nginx/html下与 Nginx 默认站点分离后端端口保持 8080 不变前端 80 端口对外提供服务MySQL 的 3306 和 Redis 的 6379 只监听本机地址不对公网开放本地部署时很多人习惯把 MySQL、Redis 端口暴露出来方便测试但公网环境这么做等于把数据库裸奔在外面扫描工具一抓一个准。安全组里我最终只放行了 22、80、443 三个端口其他一律拒绝外部访问后面会细说。2. 服务器准备与基础配置2.1 ECS 购买和系统选择阿里云 ECS 的规格选择主要看两个维度CPU 内存和系统盘大小。RuoYi 后端是一个 Spring Boot 单体应用默认 JVM 堆内存配置不合适时会占用较高内存前端 Nginx 几乎不占资源MySQL 在数据量不大的情况下内存占用也可以接受。我建议至少选择 2 核 4G 的规格预留 40G 系统盘。2 核 2G 能跑但比较吃力尤其是在执行 RuoYi 自带的代码生成、定时任务调度时内存容易吃紧。系统镜像方面CentOS 7.9 是比较稳的选择虽然已经停止维护但大量生产环境仍在运行社区资料也最丰富。Alibaba Cloud Linux 3 兼容 CentOS 生态性能略好适合愿意尝鲜的人。Ubuntu 22.04 的 apt 包管理对新手更友好如果你熟悉 Debian 系命令直接选它也完全没问题。带宽建议 5M 起步。RuoYi 前端构建后的 dist 包大约十几到几十兆首次部署上传文件时带宽太低会非常痛苦。带宽计费方式选固定带宽即可按量计费流量费不可控。2.2 安全组与防火墙设置购买 ECS 时阿里云会要求配置安全组这是云环境下的第一道网络防线和服务器内部的防火墙是两层概念。安全组规则里入方向我一开始只放行了三个端口22 用于 SSH 远程登录80 用于 HTTP 访问前端443 用于后续 HTTPS。如果你要临时调试可以添加一条允许自己公网 IP 访问 8080 的规则调试完立即删除。特别强调一点不要把 MySQL 的 3306 端口和 Redis 的 6379 端口添加到安全组入方向。RuoYi 配置里手动绑定 Redis 密码后即使端口暴露风险也可控但大多数初学者密码设置得并不复杂暴力破解非常快。我的做法是让这两个服务只监听127.0.0.1外部网络根本连接不到安全组层面直接不配端口。服务器内部的防火墙也需要同步处理。CentOS 7 默认使用 firewalld执行下面的命令放行端口systemctl start firewalld firewall-cmd --zonepublic --add-port22/tcp --permanent firewall-cmd --zonepublic --add-port80/tcp --permanent firewall-cmd --zonepublic --add-port443/tcp --permanent firewall-cmd --reload如果用 Ubuntu一般默认没有启用 ufw或者你可以直接不启用 ufw只依赖安全组做控制也能减少一层变量。3. 环境搭建从 JDK 到 Redis3.1 JDK 安装与版本选择RuoYi-Vue 的经典版本基于 Spring Boot 2.x默认编译目标为 Java 8所以服务器上安装 JDK 8 是最不会出错的。安装 openjdk 即可没必要装 Oracle JDKyum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel java -version-devel包不要漏掉后端源码打包时本地已经完成了编译但服务器上如果运行 Maven 打包脚本缺失 devel 会导致缺少某些编译工具。如果用了较新的 RuoYi 版本或升级到 Spring Boot 3那么需要 JDK 17安装方式类似选择java-17-openjdk即可。版本选择这件事我的建议是本地用什么 JDK 编译服务器就跑什么 JDK。RuoYi 开源社区里最常见的问题是本地 Java 17、服务器 Java 8编译时引入了新版本才有的 API运行时直接 NoSuchMethodError排查半天才发现是版本不一致。3.2 MySQL 安装、初始化与导入脚本RuoYi 数据库初始化依赖两个 SQL 脚本一个是框架核心库脚本ry_2024.sql另一个是定时任务脚本quartz.sql。这两个文件在项目源码的sql/目录下可以直接找到。注意老版本可能叫ry_2019.sql、ry_2020.sql之类的找到与你下载版本匹配的那份即可。安装 MySQL 8.0 时CentOS 7 默认 yum 源里没有 MySQL 的包需要先安装仓库rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-3.rpm yum install -y mysql-community-server systemctl start mysqldUbuntu 则简单很多apt install mysql-server。MySQL 8.0 在初始化后会自动生成一个临时 root 密码记录在/var/log/mysqld.log中安装后执行grep temporary password /var/log/mysqld.log mysql -uroot -p登录后先修改 root 密码再创建 RuoYi 自己的库并导入脚本ALTER USER rootlocalhost IDENTIFIED BY 你的强密码; CREATE DATABASE IF NOT EXISTS ruoyi DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;导入脚本的命令mysql -uroot -p ruoyi /data/sql/ry_2024.sql mysql -uroot -p ruoyi /data/sql/quartz.sql导入后检查一下表数量正常应该有几十张业务表加十几张 quartz 相关表。少了表通常是脚本执行顺序或编码问题utf8mb4 建议从一开始就固定避免后面出现中文乱码再回头处理。3.3 Redis 安装与安全配置RuoYi 的验证码图片、登录状态、部分缓存数据都放在 Redis 里没装 Redis 一定启动时报错。安装 Redis 我推荐用源码编译或直接用仓库包CentOS 7 默认仓库里的版本较老可以安装 EPEL 后获取较新版本yum install -y epel-release yum install -y redis systemctl start redis systemctl enable redisRedis 默认没有任何密码且监听在所有网卡上这在本地环境没问题在公网环境非常危险。修改/etc/redis.confbind 127.0.0.1 requirepass 你的Redis密码 daemonize yes修改后重启 Redis用redis-cli -a 你的密码 ping验证返回 PONG。注意bind 127.0.0.1和requirepass必须同时配置bind 限制只有本机进程能访问密码防止本机其他用户或误操作直连。3.4 Nginx 安装Nginx 的安装最简单CentOS 使用 EPEL 源yum install -y nginx nginx -vUbuntu 用apt install nginx。装完先不要急着启动因为默认站点占用 80 端口后面配置 RuoYi 站点时再一起调整。Nginx 在整个架构中的角色很容易被低估。它不只是静态文件服务器还是后端服务的反向代理。RuoYi 前端代码里所有接口请求前缀都指向/prod-apiNginx 需要把这个前缀的请求转发到http://127.0.0.1:8080/同时完成跨域处理和请求体大小限制。4. 后端打包与部署4.1 本地打包前的配置修改在本地执行 Maven 打包之前首先要确认数据库和 Redis 的配置指向。RuoYi 的配置文件位置在ruoyi-admin/src/main/resources/下最重要的两个是application.yml和application-druid.yml。application-druid.yml里改三处数据库地址、账号、密码spring: datasource: druid: url: jdbc:mysql://127.0.0.1:3306/ruoyi?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/Shanghai username: root password: 你的数据库密码这里 host 用127.0.0.1因为 MySQL 只在本机监听远程连接没有路径。serverTimezone建议显式指定为Asia/Shanghai否则后端生成的日期时间和本地有 8 小时偏差日志和业务数据会非常奇怪。application.yml里改 Redis 和日志配置spring: redis: host: 127.0.0.1 port: 6379 password: 你的Redis密码日志路径log-path默认是/home/ruoyi/logs我改成了/data/app/ruoyi/logs因为/home目录空间有限且和数据目录统一方便维护。打包命令mvn clean package -DskipTests打包时间取决于本地网络和依赖情况完成后在ruoyi-admin/target/下会生成一个ruoyi-admin.jar。这个 jar 是包含所有依赖的内嵌 jar 包不用额外安装 Tomcat。4.2 上传与启动上传 jar 包我习惯用 scp简单直接scp ruoyi-admin.jar root服务器IP:/data/app/ruoyi/如果文件较大或者不方便用 scp也可以用宝塔面板的图形上传但了解底层命令对排查问题更有帮助。上传后用ls -lh确认文件大小完整本地编译好的 jar 一般 60MB 左右太小的文件大概率是打包失败了。启动命令如下cd /data/app/ruoyi nohup java -jar ruoyi-admin.jar --spring.profiles.activeprod /dev/null 21 这里用nohup和让 jar 在退出 SSH 会话后继续运行。--spring.profiles.activeprod不是必须的因为 RuoYi 默认配置中没有区分多环境但显式指定后续扩展多环境配置更清晰。启动后立刻看日志tail -f /data/app/ruoyi/logs/sys.log看到类似Started RuoYiApplication的日志说明启动成功。再验证一下端口netstat -tlnp | grep 8080 curl http://127.0.0.1:8080后端单独用 IP 访问时显示空白或 404 是正常的因为前端静态资源还没部署但只要 Swagger 地址http://127.0.0.1:8080/swagger-ui/index.html能打开接口层面已经没问题。4.3 启动失败的常见原因RuoYi 启动失败的日志通常会直接指明问题最常见的三类是数据库连接失败会报Access denied for user或Communications link failure。前者是账号密码错误后者是 MySQL 没启动或 URL 写错特别是 URL 里的端口号、库名不匹配。Redis 连接失败会报Unable to connect to Redis。这类错误要先确认 Redis 进程是否存活再确认application.yml里的密码和redis.conf里的requirepass是否一致。RuoYi 多模块里有些版本把 Redis 配置放到了application.yml有些模板放到了application-druid.yml两个文件都检查一下。启动初期 JVM 内存不足会直接抛OutOfMemoryError。默认 Spring Boot 启动时 JVM 会按物理内存自动计算堆大小如果同时运行着 MySQL 和 Redis4G 内存的机器实际可用内存可能不足 3G启动就可能失败。这种情况下建议给 jar 包启动命令加上 JVM 参数java -Xms512m -Xmx1024m -jar ruoyi-admin.jar再配合free -h检查系统内存提前预留 MySQL、Redis 和系统本身的内存占用。5. 前端构建与 Nginx 部署5.1 前端代码的构建配置RuoYi 前端基于 Vue 2 和 Element UI构建工具是 Node.js。本地执行构建前要确认两件事Node 版本和接口代理。推荐使用 Node 14 或 16 构建Node 18 在某些旧版本 Element UI 下会有编译警告但一般不影响 dist 产物。安装依赖npm install如果网络环境不好可以把 npm 源切换成国内镜像再执行。安装完成后构建生产包npm run build:prod构建完成后在项目根目录生成dist文件夹。前端代码里所有接口请求的 baseURL 默认是/prod-api这个前缀必须和后端 Swagger 的上下文对应或者更准确地说必须和 Nginx 中配置的反向代理路径一致。5.2 Nginx 配置 RuoYi 站点把 dist 文件夹上传到服务器后比如放到/data/nginx/html/ruoyi然后新建一个 Nginx 配置文件。我一般放在/etc/nginx/conf.d/ruoyi.conf内容如下server { listen 80; server_name yourdomain.com; root /data/nginx/html/ruoyi; index index.html; # 后端接口反向代理 location /prod-api/ { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 前端 history 模式路由回退 location / { try_files $uri $uri/ /index.html; } location /index.html { add_header Cache-Control no-store; } }这份配置里有几个细节很关键。proxy_pass后面那个斜杠/必须有它表示把/prod-api/前缀去掉再转发到后端根路径这样后端接口不需要额外配置 servlet context 路径。如果不加这个斜杠前端请求/prod-api/login会被转发为http://127.0.0.1:8080/prod-api/login而后端实际接口是/login必然 404。try_files这一行是 Vue 前端路由必须的。RuoYi 前端用了前端路由的 history 模式直接访问类似/system/user这样的地址时如果 Nginx 找不到对应文件就需要回退到index.html由前端路由自己去匹配。少了这行刷新页面就会白屏 404。配置检查无误后重启 Nginxnginx -t systemctl restart nginx这时通过http://服务器IP访问就能看到 RuoYi 的登录页了。首页里的图片和静态资源能正常加载验证码也能显示说明前端静态服务和后端接口代理已经全部打通。5.3 域名解析、备案与 HTTPS用 IP 地址访问只能作为临时验证正经部署还是需要域名。阿里云域名解析非常简单在云解析控制台添加 A 记录主机记录填或www记录值填服务器公网 IPTTL 默认即可。需要特别提醒的是中国大陆的云服务器必须完成 ICP 备案才能绑定域名访问。备案流程一般在购买域名的控制台发起需要准备身份证、幕布照片或人脸识别等资料时间大约 1 到 2 周。如果不想等待可以先使用服务器的公网 IP 访问也可以临时将域名解析到境外服务器但后者不在本文讨论范围内。备案通过后建议立刻配置 HTTPS。阿里云控制台可以申请免费 SSL 证书有效期一年。拿到证书文件后在 Nginx 配置里增加 443 监听server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /data/ssl/fullchain.pem; ssl_certificate_key /data/ssl/privkey.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; root /data/nginx/html/ruoyi; index index.html; location /prod-api/ { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location / { try_files $uri $uri/ /index.html; } } server { listen 80; server_name yourdomain.com; return 301 https://$host$request_uri; }配好后nginx -t检查再重启。HTTP 自动跳转 HTTPS 的规则我放在最后一个 server 块里这样用户无论输入哪种协议最终都走加密连接。浏览器地址栏的小锁标识对项目对外展示和后期对接第三方系统都很重要。6. 问题排查与调优实录6.1 高频问题排查速查部署过程中我遇到的和身边朋友遇到的高频问题整理成了一份速查表基本覆盖了 RuoYi 上云 90% 的坑现象可能原因排查方法登录页白屏控制台 JS 报错dist 上传不完整或 Nginx root 指向错误检查/data/nginx/html/ruoyi下 index.html 是否存在验证码不显示Redis 未启动、Redis 密码不一致、后端 8080 未启动systemctl status rediscurl http://127.0.0.1:8080/swagger-ui/index.html登录后跳转 404Nginx try_files 配置缺失 or 前端构建未更新检查 location / 中的 try_files 行接口请求 502后端 jar 未启动或代理地址写错netstat -tlnp | grep 8080检查 nginx error.log接口请求 404proxy_pass 末尾缺少斜杠检查配置文件中的/prod-api/转发规则上传文件过大失败Nginx 默认限制 client_max_body_size 1m在 server 块加client_max_body_size 50m;数据库中文乱码数据库字符集不是 utf8mb4检查数据库character_set_database启动后马上被杀死内存不足OOM Killer 介入free -h查看内存限制 JVM 堆大小定时任务不执行Quartz 表未导入或时区错误导入 quartz.sql检查 serverTimezone 配置排查的核心方法是看日志。后端看/data/app/ruoyi/logs/sys.logNginx 看/var/log/nginx/error.log这两份日志能直接定位大多数问题。不要凭感觉改配置改一个测一个确认生效后继续下一个。6.2 稳定性与性能调优项目跑起来是第一步稳定和速度是第二步。我在首次上云后做了几项优化实测效果很明显。JVM 参数优化RuoYi 默认堆内存可能被 JVM 自动配置得过高改成显式控制更稳java -Xms512m -Xmx1024m -XX:UseG1GC -jar ruoyi-admin.jar-Xms512m表示启动时分配 512M 堆-Xmx1024m限制最大 1GG1GC是适合多核服务器的垃圾回收器。这样即使 MySQL 和 Redis 同时运行内存也不会互相挤压。Nginx 开启 gzip 压缩前端 JS 文件动辄几百 KB压缩后传输体积能减少 70% 以上。在 Nginx 配置里加一段gzip on; gzip_min_length 1k; gzip_types text/plain text/css application/javascript application/json image/svgxml; gzip_comp_level 6;第一次访问加载速度会有质的提升。日志清理定时任务RuoYi 的sys-log会按天写入文件数据量大之后磁盘占用非常快。我加了一个 crontab每天凌晨清理 30 天前的日志0 3 * * * find /data/app/ruoyi/logs -mtime 30 -name *.log -delete这里-mtime 30匹配修改时间超过 30 天的文件。实际操作前先跑一遍find ... -name *.log不带-delete确认文件列表是自己想清理的再加删除参数避免误删当天的日志。6.3 几个值得记住的运维习惯第一服务器上任何安装操作前先备份配置。改 Nginx 配置前把原文件复制一份改数据库前先mysqldump导出这比事后找恢复工具快得多。第二重命名旧版本文件而不是直接覆盖。部署新版 jar 时我习惯把当前运行的 jar 先改名ruoyi-admin.jar.bak再上传新的出问题随时mv回来整个回滚过程不超过一分钟。第三同一个项目反复部署时可以用脚本把上传、停旧进程、启动新进程、检查日志串起来。哪怕是最简单的几行 shell 脚本也能把这套流程缩到一分钟内完成大幅降低手抖的概率。upload_ruoyi.sh # 获取远端jar、备份旧包、启动新包并输出前50行日志第四阿里云控制台的监控告警一定要开。CPU 超过 80% 或内存超过 90% 时短信提醒这是最廉价的保险。云监控相关的基础配置在控制台操作即可不需要额外装 agent 之外的组件。我自己的体会是RuoYi 这类项目上云并不复杂难点在于每个环节之间的衔接。本地能跑不代表服务器能跑jar 启动成功不代表前端能连通页面能打开不代表数据没问题。把架构拆成静态文件服务、接口反向代理、数据缓存、业务数据库四个部分逐段验证出问题了按层排查比一次性把所有组件全部启动再熬夜抓瞎高效得多。最后送大家一个小技巧登录页能打开但验证码刷不出来的时候十有八九是 Redis 挂了和 MySQL 无关接口全部 502 的时候十有八九是 jar 包被系统杀了或进程退了和 Nginx 无关。先确认进程再看日志绝大多数字段不用上搜索引擎就能解决。

相关新闻

Windows远程访问服务从原理到实战:远程桌面、快速助手与安全加固

Windows远程访问服务从原理到实战:远程桌面、快速助手与安全加固

1. 先说清楚:Windows远程访问服务到底能解决什么问题“远程访问服务”这个词,很多朋友第一反应是“传文件”“同步数据”,但放在 Windows 体系里,它承担的职责比这重得多:让人在家里、在出差路上,像坐在办公…

2026/10/10 17:16:24 阅读更多 →
基于Python的BP神经网络代码完整实现:从数据预处理到训练避坑指南

基于Python的BP神经网络代码完整实现:从数据预处理到训练避坑指南

简介:这份资源面向希望系统掌握BP神经网络原理与Python实现的初学者及进阶开发者,提供一套可直接运行的完整代码与配套数据,帮助解决从理论理解到动手实践之间的断层问题。压缩包共19个文件,约39KB,以py脚本、pyc缓存、…

2026/10/10 17:16:24 阅读更多 →
DenseFusion工业部署实战:RGB-D对齐、TensorRT加速与姿态精调

DenseFusion工业部署实战:RGB-D对齐、TensorRT加速与姿态精调

简介:本资源是面向计算机视觉开发者与机器人方向研究者的Python版DenseFusion 6D物体姿态估计实现,聚焦RGB-D图像下高精度三维位姿估计问题,适用于机器人抓取、AR/VR交互及工业自动化等场景。压缩包共55个文件,含20个核心Python脚…

2026/10/10 17:16:24 阅读更多 →

最新新闻

基于Spring Boot + Vue的蘑菇百科系统设计与实现指南

基于Spring Boot + Vue的蘑菇百科系统设计与实现指南

毕设选题年年有人纠结,年年有人踩坑。如果你正盯着“XX管理系统”这类老掉牙的题目发愁,或者担心做纯网页展示类项目显得工作量不足,我强烈建议你认真看看“基于Spring Boot Vue的蘑菇百科系统”这个方向。它既有信息管理系统的完整业务链路…

2026/10/11 2:23:00 阅读更多 →
PJ85718DM与PIC18LF46K40在HVAC温控系统中的高可靠设计

PJ85718DM与PIC18LF46K40在HVAC温控系统中的高可靠设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 2:23:00 阅读更多 →
Kubernetes 内存超分与防爆死指南:基于 cgroup v2 memory.high 的平滑降级实操

Kubernetes 内存超分与防爆死指南:基于 cgroup v2 memory.high 的平滑降级实操

在 Kubernetes 生产集群的算力成本治理中,CPU 属于典型的“可压缩资源(Compressible Resource)”,当算力超卖或并发突刺时,CFS 调度器最多让应用稍微慢一点、延迟稍微抖动一下,进程本身并不会消亡。而内存则…

2026/10/11 2:23:00 阅读更多 →
Git误操作急救:reflog与fsck恢复丢失代码

Git误操作急救:reflog与fsck恢复丢失代码

git误操作这种事,凡是写过代码的人多多少少都遇到过。可能是午休回来手一抖,把分支 reset 到了一周前;也可能是合并的时候顺手 rebase 了一下,push 时才被远程仓库一口回绝;更常见的是git checkout -- .之后&#xff0…

2026/10/11 2:23:00 阅读更多 →
Linux进程控制实战:fork、exec、wait与僵尸进程排查指南

Linux进程控制实战:fork、exec、wait与僵尸进程排查指南

写Linux程序的人,几乎都要跟进程控制打交道。fork、exec、exit、wait这四个词,翻过书的人都能念出来,但真正把它们组合起来用对,才是区分“看过”和“会写”的分水岭。我见过不少开发者在多进程服务里栽跟头,要么子进程…

2026/10/11 2:23:00 阅读更多 →
Linux网络性能优化实战:从内核参数调整到tcpdump抓包排查

Linux网络性能优化实战:从内核参数调整到tcpdump抓包排查

某个深夜,线上接口的P99延迟从60ms一路冲到700ms,我第一时间就想做一轮Linux网络性能优化与监控,于是把网上那套内核参数调优脚本挨个灌进去,tcp_tw_reuse、tcp_max_syn_backlog全都改了。结果延迟没降,反而有机器连接…

2026/10/11 2:22:00 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →