# 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 **状态**: ✅ 生产环境运行中