Files
vue-driven-cloud-storage/DEPLOYMENT.md
WanWanYun 0f133962dc Initial commit - 玩玩云文件管理系统 v1.0.0
- 完整的前后端代码
- 支持本地存储和SFTP存储
- 文件分享功能
- 上传工具源代码
- 完整的部署文档
- Nginx配置模板

技术栈:
- 后端: Node.js + Express + SQLite
- 前端: Vue.js 3 + Axios
- 存储: 本地存储 / SFTP远程存储
2025-11-10 21:50:16 +08:00

190 lines
4.6 KiB
Markdown
Raw 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.
# 玩玩云部署指南
## 快速部署
### 1. 基础部署Docker Compose
```bash
# 克隆项目
git clone <repository-url>
cd ftp-web-manager
# 启动服务
docker-compose up -d
```
服务将在以下端口运行:
- Frontend (Nginx): 8080 (HTTP), 8443 (HTTPS)
- Backend (Node.js): 40001
### 2. 如果使用宿主机Nginx作为反向代理
如果你在宿主机上使用Nginx作为SSL终止/反向代理推荐用于生产环境需要在Nginx配置中添加大文件上传支持。
#### 2.1 创建Nginx配置文件
创建 `/etc/nginx/sites-available/wanwanyun.conf`(或对应的配置目录):
```nginx
server {
listen 80;
server_name your-domain.com;
# HTTP重定向到HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name your-domain.com;
# SSL证书配置使用Let's Encrypt或其他证书
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# 反向代理到Docker容器
location / {
# ⚠️ 重要设置最大上传文件大小为5GB
client_max_body_size 5G;
# ⚠️ 重要大文件上传超时设置1小时
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 3600s;
# 代理到Docker容器的8080端口
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;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
```
#### 2.2 应用配置
```bash
# 启用站点配置
ln -s /etc/nginx/sites-available/wanwanyun.conf /etc/nginx/sites-enabled/
# 测试Nginx配置
nginx -t
# 重新加载Nginx
nginx -s reload
```
### 3. 宝塔面板用户
如果使用宝塔面板,配置文件通常在:
- `/www/server/panel/vhost/nginx/your-domain.conf`
在站点的 `location /` 块中添加:
```nginx
location / {
# 设置最大上传文件大小为5GB
client_max_body_size 5G;
# 大文件上传超时设置1小时
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 3600s;
# ... 其他代理配置
}
```
然后重载Nginx
```bash
nginx -s reload
```
## 上传限制说明
系统支持的最大上传文件大小为 **5GB**,需要在以下三个层级进行配置:
### 1. ✅ 容器内Nginx已配置
- 文件:`nginx/nginx.conf`
- 配置:`client_max_body_size 5G;`
### 2. ✅ 后端Multer已配置
- 文件:`backend/server.js`
- 配置:`limits: { fileSize: 5 * 1024 * 1024 * 1024 }`
### 3. ⚠️ 宿主机Nginx需要手动配置
- 如果使用宿主机Nginx作为反向代理
- 必须在 `location /` 块中添加 `client_max_body_size 5G;`
- 否则上传会在64MB时失败Nginx默认限制
## 故障排查
### 上传文件提示413错误
**问题**上传大于64MB的文件时失败浏览器控制台显示 `413 Payload Too Large`
**原因**宿主机Nginx的 `client_max_body_size` 限制默认1MB或64MB
**解决方案**
1. 找到宿主机Nginx配置文件通常是 `/etc/nginx/sites-available/``/www/server/panel/vhost/nginx/`
2.`location /` 块中添加:
```nginx
client_max_body_size 5G;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 3600s;
```
3. 测试并重载Nginx
```bash
nginx -t
nginx -s reload
```
### 上传进度
前端已实现实时上传进度显示使用axios的 `onUploadProgress`),无需额外配置。
## 存储配置
系统支持两种存储方式:
### 本地存储
- 文件存储在:`backend/local-storage/`
- 可设置用户配额限制
- 适合中小型部署
### SFTP存储
- 用户可配置自己的SFTP服务器
- 支持HTTP直接下载配置 `http_download_base_url`
- 适合大规模部署
## 安全建议
1. **使用HTTPS**生产环境务必配置SSL证书
2. **定期备份数据库**`backend/data.db` 包含所有用户数据
3. **限制管理员账号**:定期审查用户权限
4. **配置防火墙**只开放必要的端口80, 443
## 技术支持
如有问题,请查看日志:
```bash
# 后端日志
docker logs wanwanyun-backend
# 前端日志
docker logs wanwanyun-frontend
# Nginx日志
tail -f /www/wwwlogs/your-domain.log
tail -f /www/wwwlogs/your-domain.error.log
```