# 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 文件服务器

## 📋 目录导航
- [🎯 项目简介](#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 文件服务器,享受便捷的文件共享和管理体验!🎉