qiangdanxitong/服务器和数据库配置清单.md

850 lines
18 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# DesignHub 服务器配置文档
**最后更新**: 2025-12-23
**系统状态**: ✅ 生产环境运行中
**版本**: v2.0 (迁移后)
---
## 🌐 访问地址
### 🎯 主要访问地址
| 类型 | 地址 | 说明 |
|------|------|------|
| **生产地址** | https://qd.yydd.ai | ⭐ 推荐使用(HTTPS安全) |
| HTTP访问 | http://qd.yydd.ai | 自动跳转到HTTPS |
| IP访问 | http://156.225.27.52:5246 | 备用访问方式 |
### 🔐 登录账号
| 用户名 | 密码 | 角色 |
|--------|------|------|
| admin | 123456 | 超级管理员 |
| designer1 | 123456 | 设计师 |
| designer2 | 123456 | 设计师 |
| requester1 | 123456 | 需求方 |
| requester2 | 123456 | 需求方 |
---
## 🖥️ 服务器信息
### 📡 公网服务器(反向代理服务器)
| 项目 | 值 |
|------|-----|
| **服务器IP** | 156.225.27.52 |
| **SSH端口** | 50232 |
| **SSH用户名** | root |
| **SSH密码** | it5NuKGemX |
| **操作系统** | CentOS 7 x86_64 |
| **Nginx版本** | 1.24.0 |
| **作用** | SSL终止、反向代理、域名绑定 |
**SSH连接命令**:
```bash
ssh -p 50232 root@156.225.27.52
# 或使用sshpass
sshpass -p 'it5NuKGemX' ssh -p 50232 root@156.225.27.52
```
### 🏢 内网服务器(应用服务器)
| 项目 | 值 |
|------|-----|
| **服务器IP** | 156.225.27.52(通过不同端口访问) |
| **SSH端口** | 5204 |
| **SSH用户名** | root |
| **SSH密码** | Jsjj@8888 |
| **操作系统** | Ubuntu 24.04.2 LTS |
| **Java版本** | OpenJDK 17.0.17 |
| **Maven版本** | 3.8.7 |
| **作用** | 运行DesignHub应用 |
**SSH连接命令**:
```bash
ssh -p 5204 root@156.225.27.52
# 或使用sshpass
sshpass -p 'Jsjj@8888' ssh -p 5204 root@156.225.27.52
```
---
## 🏗️ 系统架构
```
用户浏览器
↓ HTTPS/TLS 1.3 (443端口)
https://qd.yydd.ai (公网服务器 156.225.27.52)
↓ Nginx反向代理 (SSL终止)
127.0.0.1:5246 (frp穿透端口)
↓ frp内网穿透
内网服务器 (Ubuntu 24.04)
↓ Nginx (127.0.0.1:8888)
后端Spring Boot (127.0.0.1:8080)
↓ JDBC
MySQL 8.0 (127.0.0.1:3306)
Redis (127.0.0.1:6379)
```
---
## 💾 数据库配置
### MySQL 8.0
| 项目 | 值 |
|------|-----|
| **主机** | localhost (内网服务器) |
| **端口** | 3306 |
| **数据库名** | designhub |
| **用户名** | designhub |
| **密码** | DesignHub@2025_DB |
| **Root密码** | DesignHub@2025_Root |
| **字符集** | utf8mb4 |
| **数据表数** | 39个 |
**连接命令**:
```bash
# SSH到内网服务器
ssh -p 5204 root@156.225.27.52
# 连接MySQL
mysql -u designhub -p'DesignHub@2025_DB' designhub
```
**数据库备份**:
```bash
# 备份
mysqldump -u designhub -p'DesignHub@2025_DB' designhub > backup_$(date +%Y%m%d_%H%M%S).sql
# 恢复
mysql -u designhub -p'DesignHub@2025_DB' designhub < backup.sql
```
### Redis
| 项目 | 值 |
|------|-----|
| **主机** | localhost (内网服务器) |
| **端口** | 6379 |
| **密码** | DesignHub@2025_Redis |
| **数据库** | 0 |
**连接命令**:
```bash
# SSH到内网服务器
ssh -p 5204 root@156.225.27.52
# 连接Redis
redis-cli -a 'DesignHub@2025_Redis'
```
---
## 🔧 服务配置
### 端口分配
#### 公网服务器
| 服务 | 端口 | 说明 |
|------|------|------|
| SSH | 50232 | 远程管理 |
| HTTP | 80 | 自动跳转到HTTPS |
| HTTPS | 443 | SSL加密访问 |
| DesignHub | 5246 | frp穿透后的应用端口 |
#### 内网服务器
| 服务 | 端口 | 说明 |
|------|------|------|
| SSH | 5204 | 远程管理 |
| Nginx | 8888 | 前端和API代理 |
| 后端服务 | 8080 | Spring Boot应用 |
| MySQL | 3306 | 数据库 |
| Redis | 6379 | 缓存 |
| frp客户端 | 7000 | frp连接端口 |
---
## 📂 目录结构
### 公网服务器
```
/www/server/
├── nginx/
│ └── conf/
│ └── nginx.conf # Nginx主配置
├── panel/
│ └── vhost/
│ └── nginx/
│ └── qd.yydd.ai.conf # DesignHub站点配置
└── wwwroot/
└── qd.yydd.ai/ # SSL证书验证目录
/etc/letsencrypt/
└── live/
└── qd.yydd.ai/ # SSL证书
├── fullchain.pem # 完整证书链
├── privkey.pem # 私钥
├── cert.pem # 证书
└── chain.pem # 中间证书
/www/wwwlogs/
├── qd.yydd.ai.https.access.log # HTTPS访问日志
└── qd.yydd.ai.https.error.log # HTTPS错误日志
```
### 内网服务器
```
/opt/designhub/
├── backend/ # 后端源代码
│ ├── src/
│ ├── pom.xml
│ └── target/
├── frontend/ # 前端构建文件
│ ├── index.html
│ ├── assets/
│ └── ...
├── logs/ # 日志目录
│ ├── backend.log # 后端日志
│ └── application.log # 应用日志
├── uploads/ # 上传文件目录
└── designhub.jar # 运行的JAR包
/etc/
├── nginx/
│ └── sites-available/
│ └── designhub.conf # Nginx配置
├── systemd/
│ └── system/
│ └── designhub-backend.service # 后端服务
└── frp/
└── frpc.ini # frp客户端配置
```
---
## 📝 配置文件位置
### 公网服务器
| 配置 | 路径 | 说明 |
|------|------|------|
| Nginx主配置 | /www/server/nginx/conf/nginx.conf | 宝塔面板管理 |
| 站点配置 | /www/server/panel/vhost/nginx/qd.yydd.ai.conf | DesignHub站点配置 |
| SSL证书 | /etc/letsencrypt/live/qd.yydd.ai/ | Let's Encrypt证书 |
| 访问日志 | /www/wwwlogs/qd.yydd.ai.https.access.log | HTTPS访问日志 |
| 错误日志 | /www/wwwlogs/qd.yydd.ai.https.error.log | HTTPS错误日志 |
### 内网服务器
| 配置 | 路径 | 说明 |
|------|------|------|
| 后端配置 | /opt/designhub/backend/src/main/resources/application-prod.yml | Spring Boot配置 |
| Nginx配置 | /etc/nginx/sites-available/designhub.conf | 反向代理配置 |
| 后端服务 | /etc/systemd/system/designhub-backend.service | systemd服务配置 |
| frp配置 | /etc/frp/frpc.ini | frp客户端配置 |
| MySQL配置 | /etc/mysql/my.cnf | MySQL配置 |
| Redis配置 | /etc/redis/redis.conf | Redis配置 |
---
## 🔐 SSL证书配置
### 证书信息
| 项目 | 值 |
|------|-----|
| **域名** | qd.yydd.ai |
| **证书提供商** | Let's Encrypt |
| **证书类型** | 免费DV证书 |
| **有效期** | 2025-12-23 至 2026-03-23 (90天) |
| **自动续期** | ✅ 已配置 |
| **协议** | TLS 1.2, TLS 1.3 |
| **HTTP/2** | ✅ 已启用 |
### 证书续期
**自动续期任务** (已配置):
```bash
# 每天凌晨2点检查续期
0 2 * * * certbot renew --quiet --post-hook 'nginx -s reload' >> /var/log/certbot-renew.log 2>&1
```
**手动续期**:
```bash
# SSH到公网服务器
ssh -p 50232 root@156.225.27.52
# 测试续期(不会实际续期)
certbot renew --dry-run
# 手动续期
certbot renew
nginx -s reload
```
---
## 🌐 frp内网穿透配置
### frp客户端配置 (内网服务器)
**配置文件**: `/etc/frp/frpc.ini`
```ini
[common]
server_addr = 156.225.27.52
server_port = 7000
token = your_token_here
[designhub-web]
name = designhub-web
type = tcp
local_ip = 127.0.0.1
local_port = 8888
remote_port = 5246
```
**服务管理**:
```bash
# SSH到内网服务器
ssh -p 5204 root@156.225.27.52
# 启动frp客户端
systemctl start frpc
# 停止
systemctl stop frpc
# 重启
systemctl restart frpc
# 查看状态
systemctl status frpc
# 查看日志
journalctl -u frpc -f
```
---
## 🚀 运维命令
### 公网服务器管理
```bash
# SSH连接
ssh -p 50232 root@156.225.27.52
# Nginx管理
nginx -t # 测试配置
nginx -s reload # 重载配置(不中断服务)
systemctl restart nginx # 重启Nginx
systemctl status nginx # 查看状态
# 查看日志
tail -f /www/wwwlogs/qd.yydd.ai.https.access.log # 访问日志
tail -f /www/wwwlogs/qd.yydd.ai.https.error.log # 错误日志
# SSL证书管理
certbot certificates # 查看所有证书
certbot renew --dry-run # 测试续期
```
### 内网服务器管理
```bash
# SSH连接
ssh -p 5204 root@156.225.27.52
# 查看所有服务状态
systemctl status designhub-backend mysql nginx redis-server frpc
# 后端服务
systemctl start designhub-backend # 启动
systemctl stop designhub-backend # 停止
systemctl restart designhub-backend # 重启
systemctl status designhub-backend # 状态
journalctl -u designhub-backend -f # 查看日志
# Nginx
systemctl restart nginx # 重启
nginx -t # 测试配置
ss -tlnp | grep 8888 # 检查端口
# MySQL
systemctl restart mysql # 重启
systemctl status mysql # 状态
mysql -u designhub -p'DesignHub@2025_DB' designhub # 连接
# Redis
systemctl restart redis-server # 重启
systemctl status redis-server # 状态
redis-cli -a 'DesignHub@2025_Redis' # 连接
# frp客户端
systemctl restart frpc # 重启
systemctl status frpc # 状态
journalctl -u frpc -f # 查看日志
```
### 日志查看
```bash
# 后端应用日志
tail -f /opt/designhub/logs/backend.log
tail -f /opt/designhub/logs/application.log
# 后端服务日志
journalctl -u designhub-backend -f
journalctl -u designhub-backend -n 100 --no-pager
# Nginx日志(内网)
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
# frp日志
journalctl -u frpc -f
```
---
## 📦 部署更新流程
### 更新后端代码
```bash
# 1. 本地同步代码到内网服务器
cd /Users/lanmu/Desktop/qiangdanxitong/backend
rsync -avz --exclude='target' -e "ssh -p 5204" \
src/ root@156.225.27.52:/opt/designhub/backend/src/
# 2. SSH到内网服务器编译
ssh -p 5204 root@156.225.27.52
cd /opt/designhub/backend
mvn clean package -DskipTests
# 3. 替换JAR包
cp target/designhub-backend-1.0.0.jar /opt/designhub/designhub.jar
# 4. 重启后端服务
systemctl restart designhub-backend
# 5. 验证服务
systemctl status designhub-backend
tail -f /opt/designhub/logs/backend.log
# 6. 测试访问
curl -I https://qd.yydd.ai
```
### 更新前端代码
```bash
# 1. 本地构建
cd /Users/lanmu/Desktop/qiangdanxitong/frontend
pnpm build
# 2. 上传到内网服务器
rsync -avz -e "ssh -p 5204" \
dist/ root@156.225.27.52:/opt/designhub/frontend/
# 3. 清除浏览器缓存(当前配置已禁用Nginx缓存)
# 直接刷新浏览器即可看到更新
# 4. 测试访问
curl -I https://qd.yydd.ai
```
### 一键部署脚本
```bash
#!/bin/bash
# 保存为 deploy.sh
echo "=== DesignHub 一键部署 ==="
# 后端部署
echo "【1/4】同步后端代码..."
rsync -avz --exclude='target' -e "ssh -p 5204" \
backend/src/ root@156.225.27.52:/opt/designhub/backend/src/
echo "【2/4】编译后端..."
ssh -p 5204 root@156.225.27.52 << 'EOF'
cd /opt/designhub/backend
mvn clean package -DskipTests
cp target/designhub-backend-1.0.0.jar /opt/designhub/designhub.jar
systemctl restart designhub-backend
EOF
# 前端部署
echo "【3/4】构建前端..."
cd frontend
pnpm build
echo "【4/4】上传前端..."
rsync -avz -e "ssh -p 5204" \
dist/ root@156.225.27.52:/opt/designhub/frontend/
echo ""
echo "✅ 部署完成!"
echo "访问地址: https://qd.yydd.ai"
```
使用方法:
```bash
chmod +x deploy.sh
./deploy.sh
```
---
## 🔍 故障排查
### 1. HTTPS无法访问
```bash
# 检查公网服务器Nginx
ssh -p 50232 root@156.225.27.52
systemctl status nginx
nginx -t
tail -50 /www/wwwlogs/qd.yydd.ai.https.error.log
# 检查SSL证书
openssl x509 -in /etc/letsencrypt/live/qd.yydd.ai/fullchain.pem -noout -dates
# 检查端口监听
ss -tlnp | grep 443
```
### 2. 后端服务无法启动
```bash
# SSH到内网服务器
ssh -p 5204 root@156.225.27.52
# 查看详细日志
journalctl -u designhub-backend --no-pager -n 100
# 检查端口占用
ss -tlnp | grep 8080
# 手动启动测试
cd /opt/designhub
java -jar designhub.jar --spring.profiles.active=prod
# 检查配置文件
cat /opt/designhub/backend/src/main/resources/application-prod.yml
```
### 3. 数据库连接失败
```bash
# 检查MySQL状态
systemctl status mysql
# 测试连接
mysql -u designhub -p'DesignHub@2025_DB' -e "SELECT 1"
# 检查用户权限
mysql -u root -p'DesignHub@2025_Root' -e "SHOW GRANTS FOR 'designhub'@'localhost';"
# 查看错误日志
tail -50 /var/log/mysql/error.log
```
### 4. frp穿透失败
```bash
# SSH到内网服务器
ssh -p 5204 root@156.225.27.52
# 检查frpc状态
systemctl status frpc
# 查看日志
journalctl -u frpc -n 100 --no-pager
# 测试本地服务
curl -I http://127.0.0.1:8888
# 测试穿透后端口
curl -I http://127.0.0.1:5246
```
### 5. Nginx 502错误
```bash
# 检查后端服务是否运行
ssh -p 5204 root@156.225.27.52
systemctl status designhub-backend
# 检查Nginx配置
nginx -t
# 查看错误日志
tail -50 /var/log/nginx/error.log
# 测试后端连接
curl -I http://127.0.0.1:8080/api/health
```
### 6. 页面更新不生效
```bash
# 当前配置已禁用Nginx缓存,直接刷新即可
# 如仍有问题,检查前端文件
ssh -p 5204 root@156.225.27.52
ls -la /opt/designhub/frontend/
cat /opt/designhub/frontend/index.html
# 清除浏览器缓存
# Chrome: Ctrl+Shift+Delete
# 或使用无痕模式测试
```
---
## 📊 监控检查
### 健康检查命令
```bash
# 一键检查所有服务(内网服务器)
ssh -p 5204 root@156.225.27.52 << 'EOF'
echo "=== DesignHub 服务状态 ==="
echo ""
echo "【后端服务】"
systemctl is-active designhub-backend
echo ""
echo "【MySQL】"
systemctl is-active mysql
echo ""
echo "【Redis】"
systemctl is-active redis-server
echo ""
echo "【Nginx】"
systemctl is-active nginx
echo ""
echo "【frp客户端】"
systemctl is-active frpc
echo ""
echo "【端口监听】"
ss -tlnp | grep -E "8080|8888|3306|6379"
EOF
# 检查公网服务器
ssh -p 50232 root@156.225.27.52 << 'EOF'
echo "=== 公网服务器状态 ==="
echo ""
echo "【Nginx】"
systemctl is-active nginx
echo ""
echo "【SSL证书有效期】"
openssl x509 -in /etc/letsencrypt/live/qd.yydd.ai/fullchain.pem -noout -dates
EOF
```
### 性能监控
```bash
# CPU和内存使用
ssh -p 5204 root@156.225.27.52
top -bn1 | head -20
# 磁盘使用
df -h
# 网络连接
ss -s
# 后端JVM内存
jps -lv
```
---
## 🌐 DNS配置
### 域名解析配置
| 类型 | 主机记录 | 记录值 | TTL |
|------|----------|--------|-----|
| A记录 | qd | 156.225.27.52 | 600 |
### 验证DNS解析
```bash
# 查询域名解析
nslookup qd.yydd.ai
# Ping测试
ping qd.yydd.ai
# 详细查询
dig qd.yydd.ai
```
---
## 🔒 安全配置
### 防火墙规则
**公网服务器**:
- 开放端口: 50232(SSH), 80(HTTP), 443(HTTPS)
- 通过宝塔面板管理
**内网服务器**:
```bash
# 查看防火墙状态
ufw status
# 开放必要端口(如需要)
ufw allow 5204/tcp # SSH
ufw allow 8888/tcp # Nginx
```
### SSH安全
**建议**:
- ✅ 使用非标准SSH端口(已实施:50232、5204)
- ✅ 使用强密码
- 建议: 配置SSH密钥认证
- 建议: 禁用root密码登录(配置密钥后)
---
## 🎯 快速参考
### 常用命令速查
```bash
# ============ 公网服务器 ============
# SSH连接
ssh -p 50232 root@156.225.27.52
# 重载Nginx
nginx -s reload
# 查看HTTPS日志
tail -f /www/wwwlogs/qd.yydd.ai.https.access.log
# SSL证书续期
certbot renew
# ============ 内网服务器 ============
# SSH连接
ssh -p 5204 root@156.225.27.52
# 重启后端
systemctl restart designhub-backend
# 查看后端日志
tail -f /opt/designhub/logs/backend.log
# 连接数据库
mysql -u designhub -p'DesignHub@2025_DB' designhub
# 连接Redis
redis-cli -a 'DesignHub@2025_Redis'
# 查看所有服务状态
systemctl status designhub-backend mysql nginx redis-server frpc
# ============ 本地开发 ============
# 部署后端
rsync -avz --exclude='target' -e "ssh -p 5204" backend/src/ root@156.225.27.52:/opt/designhub/backend/src/
ssh -p 5204 root@156.225.27.52 'cd /opt/designhub/backend && mvn clean package -DskipTests && cp target/*.jar /opt/designhub/designhub.jar && systemctl restart designhub-backend'
# 部署前端
cd frontend && pnpm build
rsync -avz -e "ssh -p 5204" dist/ root@156.225.27.52:/opt/designhub/frontend/
# 测试访问
curl -I https://qd.yydd.ai
```
---
## 📚 相关文档
- **🎉 项目部署完成-最终报告.md** - 完整部署记录
- **域名和HTTPS配置指南.md** - SSL证书配置详解
- **Nginx缓存配置说明.md** - 缓存策略说明
- **DesignHub访问地址.md** - 访问地址汇总
- **最终开发总结.md** - 功能开发总结
---
## 📞 技术支持
### 环境信息
**公网服务器**:
- 系统: CentOS 7 x86_64
- Nginx: 1.24.0
- Certbot: 1.11.0
**内网服务器**:
- 系统: Ubuntu 24.04.2 LTS
- Java: OpenJDK 17.0.17
- Maven: 3.8.7
- MySQL: 8.0
- Redis: 7.x
- Nginx: 1.24.x
### 访问测试
```bash
# HTTPS访问测试
curl -I https://qd.yydd.ai
# 应该返回:
# HTTP/2 200
# cache-control: no-store, no-cache, must-revalidate...
```
---
## 📝 更新历史
| 日期 | 版本 | 更新内容 |
|------|------|----------|
| 2025-12-23 | v2.0 | 服务器迁移,添加域名和HTTPS |
| 2025-12-19 | v1.0 | 初始版本 |
---
## 🎯 系统状态
### 当前配置
- ✅ **域名**: qd.yydd.ai
- ✅ **HTTPS**: 已启用(TLS 1.3)
- ✅ **HTTP/2**: 已启用
- ✅ **SSL证书**: Let's Encrypt(自动续期)
- ✅ **缓存策略**: 已禁用(开发模式)
- ✅ **frp穿透**: 已配置(端口5246)
- ✅ **服务状态**: 所有服务正常运行
### 性能指标
- 🚀 **国内访问延迟**: < 100ms
- 🚀 **HTTPS加密**: TLS 1.3 (0-RTT)
- 🚀 **HTTP/2多路复用**: 已启用
- 🚀 **缓存策略**: 无缓存(便于开发)
---
**文档维护**: 请在服务器配置变更后及时更新此文档
**最后更新**: 2025-12-23
**状态**: ✅ 生产环境运行中