Files
2026-03-07 22:58:43 +08:00

12 KiB
Raw Permalink Blame History

name, description
name description
服务器管理 宝塔服务器统一管理与自动化部署。触发词服务器、宝塔、部署、上线、发布、Node项目、SSL证书、HTTPS、DNS解析、域名配置、端口、PM2、Nginx、MySQL数据库、服务器状态。涵盖多服务器资产管理、Node.js项目一键部署、SSL证书管理、DNS配置、系统诊断等运维能力。

服务器管理

让 AI 写完代码后,无需人工介入,自动把项目「变成一个在线网站」。


快速入口(复制即用)

服务器资产

服务器 IP 配置 用途 宝塔面板
小型宝塔 42.194.232.22 2核4G 5M 主力部署Node项目 https://42.194.232.22:9988/ckbpanel
存客宝 42.194.245.239 2核16G 50M 私域银行业务 https://42.194.245.239:9988
kr宝塔 43.139.27.93 2核4G 5M 辅助服务器 https://43.139.27.93:9988

凭证速查

# SSH连接小型宝塔为例
ssh root@42.194.232.22
密码: Zhiqun1984

# 宝塔面板登录(小型宝塔)
地址: https://42.194.232.22:9988/ckbpanel
账号: ckb
密码: zhiqun1984

# 宝塔API密钥
小型宝塔: hsAWqFSi0GOCrunhmYdkxy92tBXfqYjd
存客宝:   TNKjqDv5N1QLOU20gcmGVgr82Z4mXzRi
kr宝塔:   qcWubCdlfFjS2b2DMT1lzPFaDfmv1cBT

一键操作

1. 检查服务器状态

# 运行快速检查脚本
python3 /Users/karuo/Documents/个人/卡若AI/01_系统管理/服务器管理/scripts/快速检查服务器.py

2. 部署 Node 项目(标准流程)

# 1. 压缩项目(排除无用目录)
cd /项目路径
tar --exclude='node_modules' --exclude='.next' --exclude='.git' \
    -czf /tmp/项目名_update.tar.gz .

# 2. 上传到服务器
sshpass -p 'Zhiqun1984' scp /tmp/项目名_update.tar.gz root@42.194.232.22:/tmp/

# 3. SSH部署
ssh root@42.194.232.22
cd /www/wwwroot/项目名
rm -rf app components lib public styles *.json *.js *.ts *.mjs *.md .next
tar -xzf /tmp/项目名_update.tar.gz
pnpm install
pnpm run build
rm /tmp/项目名_update.tar.gz

# 4. 宝塔面板重启项目
# 【网站】→【Node项目】→ 找到项目 → 点击【重启】

3. SSL证书检查/修复

# 检查所有服务器SSL证书状态
python3 /Users/karuo/Documents/个人/卡若AI/01_系统管理/服务器管理/scripts/ssl证书检查.py

# 自动修复过期证书
python3 /Users/karuo/Documents/个人/卡若AI/01_系统管理/服务器管理/scripts/ssl证书检查.py --fix

4. 常用诊断命令

# 检查端口占用
ssh root@42.194.232.22 "ss -tlnp | grep :3006"

# 检查PM2进程
ssh root@42.194.232.22 "/www/server/nodejs/v22.14.0/bin/pm2 list"

# 测试HTTP响应
ssh root@42.194.232.22 "curl -I http://localhost:3006"

# 检查Nginx配置
ssh root@42.194.232.22 "nginx -t"

# 重载Nginx
ssh root@42.194.232.22 "nginx -s reload"

# DNS解析检查
dig soul.quwanzhi.com +short @8.8.8.8

端口配置表(小型宝塔 42.194.232.22

端口 项目名 类型 域名 状态
3000 cunkebao Next.js mckb.quwanzhi.com
3001 ai_hair NestJS ai-hair.quwanzhi.com
3002 kr_wb Next.js kr_wb.quwanzhi.com
3003 hx Vue krjzk.quwanzhi.com ⚠️
3004 dlmdashboard Next.js dlm.quwanzhi.com
3005 document Next.js docc.quwanzhi.com
3006 soul Next.js soul.quwanzhi.com
3015 神射手 Next.js kr-users.quwanzhi.com ⚠️
3018 zhaoping Next.js zp.quwanzhi.com
3021 is_phone Next.js is-phone.quwanzhi.com
3031 word Next.js word.quwanzhi.com
3036 ymao Next.js ymao.quwanzhi.com
3043 tongzhi Next.js touzhi.lkdie.com
3045 玩值大屏 Next.js wz-screen.quwanzhi.com
3050 zhiji Next.js zhiji.quwanzhi.com
3051 zhiji1 Next.js zhiji1.quwanzhi.com
3055 wzdj Next.js wzdj.quwanzhi.com
3305 AITOUFA Next.js ai-tf.quwanzhi.com
9528 mbti Vue mbtiadmin.quwanzhi.com

端口分配原则

  • 3000-3099: Next.js / React 项目
  • 3100-3199: Vue 项目
  • 3200-3299: NestJS / Express 后端
  • 3300-3399: AI相关项目
  • 9000-9999: 管理面板 / 特殊用途

核心工作流程

┌─────────────────────────────────────────────────────────────────────────────┐
│                        Node项目一键部署流程                                  │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│   START                                                                     │
│     │                                                                       │
│     ▼                                                                       │
│  ┌──────────────────┐                                                      │
│  │ 1. 压缩本地代码  │  排除 node_modules, .next, .git                      │
│  └────────┬─────────┘                                                      │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐                                                      │
│  │ 2. 上传到服务器  │  scp 到 /tmp/                                         │
│  └────────┬─────────┘                                                      │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐                                                      │
│  │ 3. 清理旧文件    │  保留 .env 等配置文件                                 │
│  └────────┬─────────┘                                                      │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐                                                      │
│  │ 4. 解压新代码    │  tar -xzf                                             │
│  └────────┬─────────┘                                                      │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐                                                      │
│  │ 5. 安装依赖      │  pnpm install                                         │
│  └────────┬─────────┘                                                      │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐                                                      │
│  │ 6. 构建项目      │  pnpm run build                                       │
│  └────────┬─────────┘                                                      │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐                                                      │
│  │ 7. 宝塔面板重启  │  Node项目 → 重启                                       │
│  └────────┬─────────┘                                                      │
│           │                                                                 │
│           ▼                                                                 │
│  ┌──────────────────┐                                                      │
│  │ 8. 验证访问      │  curl https://域名                                     │
│  └────────┬─────────┘                                                      │
│           │                                                                 │
│           ▼                                                                 │
│        SUCCESS                                                              │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

操作优先级矩阵

操作类型 优先方式 备选方式 说明
查询信息 宝塔API SSH API稳定
文件操作 宝塔API SSH API支持
配置Nginx 宝塔API SSH API可读写
重载服务 ⚠️ SSH - API无接口
上传代码 ⚠️ SSH/scp - 大文件
添加项目 宝塔界面 - API不稳定

常见问题速查

Q1: 外网无法访问ERR_EMPTY_RESPONSE

原因: 腾讯云安全组只开放443端口

解决:

  1. 必须配置SSL证书
  2. Nginx配置添加443监听

Q2: Node项目启动失败Could not find production build

原因: 使用 npm run start 但未执行 npm run build

解决: 先 pnpm run build 再重启

Q3: 端口冲突EADDRINUSE

解决:

# 检查端口占用
ss -tlnp | grep :端口号

# 修改package.json中的端口
"start": "next start -p 新端口"

Q4: DNS被代理劫持

现象: 本地DNS解析到198.18.x.x

解决:

  • 关闭代理软件
  • 或用手机4G网络测试

Q5: 宝塔与PM2冲突

原因: 同时使用root用户PM2和宝塔PM2

解决:

  • 停止所有独立PM2: pm2 kill
  • 只使用宝塔界面管理

安全约束

绝对禁止

  • 输出完整密码/密钥到聊天
  • 执行危险命令rm -rf /, reboot等
  • 跳过验证步骤
  • 使用独立PM2避免与宝塔冲突

必须遵守

  • 操作前检查服务器状态
  • 操作后验证结果
  • 生成操作报告

相关脚本

脚本 功能 位置
快速检查服务器.py 一键检查所有服务器状态 ./scripts/
一键部署.py 根据配置文件部署项目 ./scripts/
ssl证书检查.py 检查/修复SSL证书 ./scripts/

相关文档

文档 内容 位置
宝塔API接口文档.md 宝塔API完整接口说明 ./references/
端口配置表.md 完整端口分配表 ./references/
常见问题手册.md 问题解决方案大全 ./references/
部署配置模板.md JSON配置文件模板 ./references/
系统架构说明.md 完整架构图和流程图 ./references/

历史对话整理

kr_wb白板项目部署2026-01-23

  • 项目类型: Next.js
  • 部署位置: /www/wwwroot/kr_wb
  • 域名: kr_wb.quwanzhi.com
  • 端口: 3002
  • 遇到问题: AI功能401错误API密钥未配置
  • 解决方案: 修改 lib/ai-client.ts改用 SiliconFlow 作为默认服务

soul项目部署2026-01-23

  • 项目类型: Next.js
  • 部署位置: /www/wwwroot/soul
  • 域名: soul.quwanzhi.com
  • 端口: 3006
  • 部署流程: 压缩→上传→解压→安装依赖→构建→PM2启动→配置Nginx→配置SSL