# docker-nginx-file **Repository Path**: meimolihan/nginx-file ## Basic Information - **Project Name**: docker-nginx-file - **Description**: nginx-file-server 文件服务器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-02 - **Last Updated**: 2025-09-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: docker-compose ## README # 🐳 Docker 部署 Nginx-File 文件服务器 ![](https://file.meimolihan.eu.org/screenshot/docker-nginx-file-server.webp) ## 📋 目录导航 - [🎯 项目简介](#project-intro) - [🛠️ 核心特性](#features) - [🐳 一、Docker 部署 Nginx-File](#deploy) - [1. 创建部署目录和 `docker-compose.yml` 文件 📁](#deploy-setup) - [2. 拉取镜像并启动容器 🚀](#deploy-start) - [🚀 二、使用 Nginx-File](#usage) - [1. 访问 Web 界面 🌐](#usage-access) - [2. 文件管理功能 📁](#usage-features) - [3. 权限管理 🔐](#usage-auth) - [🌐 三、Nginx 反向代理配置](#nginx) - [1. 创建 Nginx 配置文件 🔧](#nginx-config) - [2. 测试并重载 Nginx 🔄](#nginx-reload) - [🔧 四、容器维护命令](#maintenance) - [1. Docker Compose 命令 🐳](#docker-compose) - [2. Docker 容器命令 📦](#docker) - [3. Docker 镜像管理 📀](#docker-images) ## 🎯 项目简介 Nginx-File 是一个基于 **Docker** 的轻量级文件服务器解决方案,使用 Nginx 作为文件服务引擎。它提供了一个简单、高效的方式来通过 Web 界面访问和共享文件,支持目录浏览、文件下载和基本的文件管理功能。 **🔗 原项目仓库**: [https://github.com/wukongdaily/index](https://github.com/wukongdaily/index) ## 🛠️ 核心特性 | 特性类别 | 功能描述 | 优势 | | ------------------ | ------------------------------ | ------------------------ | | **🌐 Web 文件访问** | 通过浏览器直接访问和下载文件 | 无需额外客户端,便捷访问 | | **📁 目录浏览** | 自动生成目录索引,方便文件导航 | 直观的文件管理系统 | | **🔒 安全访问** | 支持 HTTPS 加密传输 | 保障数据传输安全 | | **⚡ 高性能** | 基于 Nginx 的高效静态文件服务 | 快速响应和传输 | | **🐳 容器化部署** | 一键部署,简单易用 | 快速搭建和迁移 | | **📊 大文件支持** | 优化大文件下载和传输 | 支持大型文件共享 | | **🔧 灵活配置** | 支持自定义 Nginx 配置 | 高度可定制化 | ## 🐳 一、Docker 部署 Nginx-File ### 1. 创建部署目录和 `docker-compose.yml` 文件 📁 ```bash mkdir -p /mnt/mydisk/home/nginx-file && cd $_ && \ cat > docker-compose.yml <<'EOF' services: nginx-file: image: nginx:alpine-slim container_name: nginx-file network_mode: bridge restart: unless-stopped ports: - "18080:80" # 🌐 主机端口:容器端口 environment: - TZ=Asia/Shanghai # ⏰ 时区设置 volumes: - ./data:/usr/share/nginx/html # 📂 默认数据目录 - ./nginx.conf:/etc/nginx/nginx.conf:ro # ⚙️ 自定义配置文件 - /mnt/mydisk/阿里云盘:/usr/share/nginx/html/阿里云盘 # ☁️ 阿里云盘目录 - /mnt/mydisk/downloads:/usr/share/nginx/html/downloads # 📥 下载目录 - /mnt/mydisk/file:/usr/share/nginx/html/file # 📄 文件目录 - /mnt/mydisk/media:/usr/share/nginx/html/media # 🎵 媒体目录 - /mnt/mydisk/backup:/usr/share/nginx/html/backup # 💾 备份目录 command: [nginx, '-g', 'daemon off;'] # 🚀 启动命令 EOF ``` ### 2. 拉取镜像并启动容器 🚀 ```bash docker-compose up -d ``` ## 🚀 二、使用 Nginx-File ### 1. 访问 Web 界面 🌐 部署完成后,可以通过以下方式访问文件服务器: - **本地访问**: `http://localhost:18080` - **域名访问**: `https://nginx-file.example.com`(配置反向代理后) ### 2. 文件管理功能 📁 | 功能 | 操作方式 | 说明 | | -------------- | ------------------------- | ------------------------------------ | | **📁 目录浏览** | 自动生成目录索引页面 | 显示文件大小和修改时间,支持文件排序 | | **📥 文件下载** | 直接点击文件进行下载 | 支持断点续传,大文件下载优化 | | **📤 文件上传** | 通过 WebDAV 或 FTP 客户端 | 支持拖拽上传(需配置相应功能) | ### 3. 权限管理 🔐 | 安全功能 | 配置方式 | 用途 | | -------------- | --------------------- | -------------------------------------- | | **👤 基本认证** | 配置 HTTP 基本认证 | 保护敏感目录,设置用户名和密码访问限制 | | **🌐 IP 限制** | 配置 IP 白名单/黑名单 | 限制特定网络访问,增强安全性 | ## 🌐 三、Nginx 反向代理配置 > **访问地址示例:** ### 1. 创建 Nginx 配置文件 🔧 ```bash mkdir -p /etc/nginx/conf.d && \ cat > /etc/nginx/conf.d/nginx-file-server.conf <<'EOF' server { listen 443 ssl; listen [::]:443 ssl; server_name nginx-file.example.com; # 🌐 请替换为您的实际域名 # SSL 证书配置 ssl_certificate /etc/nginx/keyfile/cert.pem; ssl_certificate_key /etc/nginx/keyfile/key.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384; # 安全头部 add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; add_header X-Content-Type-Options nosniff always; add_header X-Frame-Options "SAMEORIGIN" always; add_header X-XSS-Protection "1; mode=block"; # 性能优化 sendfile on; tcp_nopush on; # 文件大小限制 client_max_body_size 10G; location / { proxy_pass http://localhost:18080; proxy_set_header Host $http_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_set_header Range $http_range; proxy_set_header If-Range $http_if_range; # WebSocket 支持(如果应用需要) proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # 超时设置 proxy_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; # 缓冲设置 proxy_buffering on; proxy_buffer_size 4k; proxy_buffers 8 16k; proxy_busy_buffers_size 24k; proxy_max_temp_file_size 0; } # 错误页面处理 error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/html; } } EOF ``` ### 2. 测试并重载 Nginx 🔄 ```bash sudo nginx -t && sudo systemctl reload nginx ``` ## 🔧 四、容器维护命令 ### 1. Docker Compose 命令 🐳 ```bash # 进入项目目录(请替换为您的实际目录) cd /path/to/your/project # 停止并删除容器 docker-compose down # 拉取最新镜像 docker-compose pull # 启动容器 docker-compose up -d # 仅启动指定服务(请替换 为实际服务名) docker-compose up -d # 查看服务状态 docker-compose ps # 查看服务日志 docker-compose logs # 跟踪服务日志 docker-compose logs -f # 查看指定服务日志(请替换 为实际服务名) docker-compose logs # 完整升级流程 docker-compose down && \ docker-compose pull && \ docker-compose up -d && \ docker image prune -f ``` ### 2. Docker 容器命令 📦 ```bash # 查看所有容器名称 docker ps -a --format "{{.Names}}" # 查看运行中容器 docker ps # 停止/启动/重启容器(请替换 为实际容器名) docker stop # 停止容器 docker start # 启动容器 docker restart # 重启容器 # 删除容器 docker rm # 删除已停止容器 docker rm -f # 强制删除运行中容器 # 进入容器Shell docker exec -it sh # 使用sh进入容器 docker exec -it bash # 使用bash进入容器 # 以root身份进入容器 docker exec -u 0 -it sh # 在容器中执行命令 docker exec ls -la # 查看容器详情和资源使用 docker inspect # 查看详细配置 docker stats # 实时资源监控 ## 容器日志管理 docker logs # 查看日志 docker logs -f # 实时跟踪日志 docker logs --tail 100 # 查看最后100行 docker logs -t # 带时间戳的日志 ``` ### 3. Docker 镜像管理 📀 ```bash docker images # 列出所有镜像 docker rmi # 删除指定镜像(请替换为实际镜像名和标签) docker image prune -f # 清理悬空镜像 docker image prune -a -f # 清理所有未使用镜像 ``` --- 通过以上步骤,您应该能够成功在 Docker 中部署并运行 Nginx-File 文件服务器,享受便捷的文件共享和管理体验!🎉