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

4.6 KiB
Raw Blame History

玩玩云部署指南

快速部署

1. 基础部署Docker Compose

# 克隆项目
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(或对应的配置目录):

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 应用配置

# 启用站点配置
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 / 块中添加:

location / {
    # 设置最大上传文件大小为5GB
    client_max_body_size 5G;

    # 大文件上传超时设置1小时
    proxy_read_timeout 3600s;
    proxy_send_timeout 3600s;
    proxy_connect_timeout 3600s;

    # ... 其他代理配置
}

然后重载Nginx

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 / 块中添加:
    client_max_body_size 5G;
    proxy_read_timeout 3600s;
    proxy_send_timeout 3600s;
    proxy_connect_timeout 3600s;
    
  3. 测试并重载Nginx
    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

技术支持

如有问题,请查看日志:

# 后端日志
docker logs wanwanyun-backend

# 前端日志
docker logs wanwanyun-frontend

# Nginx日志
tail -f /www/wwwlogs/your-domain.log
tail -f /www/wwwlogs/your-domain.error.log