# Emotion Museum 前端部署完成说明 ## ✅ 部署状态 前端应用已成功部署到服务器 `101.200.208.45`,可通过以下地址访问: - **本地访问**: `http://127.0.0.1/emotion-museum/` - **服务器访问**: `http://101.200.208.45/emotion-museum/` - **外网访问**: 需要配置防火墙规则 ## 📁 部署目录结构 ``` /data/www/emotion-museum/ # 前端应用根目录 ├── index.html # 主页面 └── assets/ # 静态资源目录 ├── *.js # JavaScript 文件 ├── *.css # CSS 文件 └── ... # 其他资源 ``` ## 🔧 Nginx 配置 **配置文件位置**: `/www/server/panel/vhost/nginx/emotion-museum.conf` ### 主要配置内容 1. **前端应用路由** (`/emotion-museum`) - 使用 `alias` 指向 `/data/www/emotion-museum` - 支持 Vue Router history 模式 - 所有非文件请求重定向到 `index.html` 2. **缓存策略** - HTML 文件: 不缓存(Cache-Control: no-cache) - 静态资源(JS/CSS/图片等): 缓存 1 年 3. **API 代理** (`/api`) - 代理到后端服务 `http://127.0.0.1:19089` - 设置正确的代理头信息 4. **WebSocket 代理** (`/ws`) - 支持 WebSocket 升级 - 使用 `$connection_upgrade` 变量处理连接 - 超时时间设置为 7 天 ## 📦 部署脚本 **脚本位置**: `web/deploy.sh` ### 使用方法 ```bash # 1. 构建前端 cd web npm run build # 2. 部署到服务器 bash deploy.sh ``` ### 脚本功能 - 检查 `dist` 目录是否存在 - 上传 `index.html` 到服务器 - 上传 `assets` 目录到服务器 - 上传测试文件(如果存在) ## 🔄 更新流程 每次更新前端代码后,执行以下步骤: ```bash # 1. 在本地构建 cd web npm run build # 2. 部署到服务器 bash deploy.sh # 3. 验证部署 curl http://127.0.0.1/emotion-museum/ ``` ## 🌐 访问测试 ### 本地测试(在服务器上) ```bash # 测试前端 curl http://127.0.0.1/emotion-museum/ # 测试 API 代理 curl http://127.0.0.1/api/health # 测试 WebSocket curl http://127.0.0.1/ws ``` ### 外网访问 如果需要从外网访问,需要: 1. 配置服务器防火墙规则,允许 80 端口访问 2. 配置域名解析(可选) 3. 配置 HTTPS(推荐) ## 📝 配置文件说明 ### emotion-museum.conf ```nginx server { listen 80; server_name 101.200.208.45 localhost 127.0.0.1; # 前端应用 location /emotion-museum { alias /data/www/emotion-museum; try_files $uri $uri/ /index.html; # ... 缓存配置 } # API 代理 location /api { proxy_pass http://127.0.0.1:19089; # ... 代理配置 } # WebSocket 代理 location /ws { proxy_pass http://127.0.0.1:19089; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; # ... WebSocket 配置 } } ``` ## ⚠️ 注意事项 1. **服务器名称警告**: 配置中可能出现 "conflicting server name" 警告,这是正常的,不影响功能 2. **缓存问题**: 如果更新后看不到最新内容,清除浏览器缓存或使用 Ctrl+Shift+Delete 3. **WebSocket 连接**: 确保后端服务在 `127.0.0.1:19089` 正常运行 4. **静态资源**: 所有静态资源都会被缓存 1 年,更新时需要更改文件名或清除缓存 ## 🚀 后续优化 1. **HTTPS 配置**: 添加 SSL 证书支持 2. **域名配置**: 配置自定义域名 3. **性能优化**: 启用 Gzip 压缩、HTTP/2 等 4. **监控告警**: 配置 Nginx 日志监控 ## 📞 故障排查 ### 问题:访问返回 404 **解决方案**: 1. 检查文件是否正确上传: `ls -la /data/www/emotion-museum/` 2. 检查 Nginx 配置: `nginx -t` 3. 重新加载 Nginx: `nginx -s reload` ### 问题:API 请求失败 **解决方案**: 1. 检查后端服务是否运行: `curl http://127.0.0.1:19089/api/health` 2. 检查 Nginx 代理配置 3. 查看 Nginx 错误日志: `tail -f /www/server/nginx/logs/error.log` ### 问题:WebSocket 连接失败 **解决方案**: 1. 检查后端 WebSocket 服务是否运行 2. 检查浏览器控制台错误信息 3. 确保 Nginx 配置中正确设置了 `Upgrade` 和 `Connection` 头 ## 📋 检查清单 - [x] 前端代码构建成功 - [x] 文件上传到服务器 - [x] Nginx 配置正确 - [x] 本地访问测试通过 - [x] API 代理配置完成 - [x] WebSocket 代理配置完成 - [ ] 外网访问测试(需要防火墙配置) - [ ] HTTPS 配置(可选) - [ ] 域名配置(可选)