Nginx + Caddy 文件服务器部署指南 🚀

🌟 概述
本指南介绍如何使用 Nginx 和 Caddy 搭建高性能的文件下载服务器,实现负载均衡和高可用性。
📋 部署架构
1
| 用户请求 → Nginx (负载均衡) → Caddy (文件服务)
|
🔧 Caddy 文件服务器部署
Caddy 部署文件下载服务器教程:
https://t.mobufan.eu.org:666/archives/911/#cl-2
⚡ Nginx 反向代理配置
Nginx 下载服务地址:
https://file.mobufan.eu.org:666
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| mkdir -pm 755 /etc/nginx/conf.d touch /etc/nginx/conf.d/file.conf
cat <<'EOF' > /etc/nginx/conf.d/file.conf
upstream mysvr1 { server 10.10.10.245:11300; server 10.10.10.247:11300 backup; }
server { listen 666 ssl; listen [::]:666 ssl;
server_name file.mobufan.eu.org;
ssl_certificate /etc/nginx/keyfile/cert.pem; ssl_certificate_key /etc/nginx/keyfile/key.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers HIGH:!aNULL:!MD5;
location / { proxy_pass http://mysvr1; add_header backendIP $upstream_addr; add_header backendCode $upstream_status; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Range $http_range; proxy_set_header If-Range $http_if_range; proxy_redirect off; proxy_buffering on; proxy_http_version 1.1; } } EOF
sudo systemctl restart nginx
|
📁 文件路径管理
1. 本地文件存储路径
2. 进入文件目录
3. 文件下载示例
简单下载(下载到当前目录):
1
| curl -# -O https://file.mobufan.eu.org:666/my-sh/rsync/hosts.sh
|
指定目录和文件名下载:
1 2
| mkdir -p /mnt/test curl -# -L -o /mnt/test/hosts.sh https://file.mobufan.eu.org:666/my-sh/rsync/hosts.sh
|
添加执行权限:
1 2
| chmod +x /mnt/test/hosts.sh ls -la /mnt/test/
|
🛠️ 高级配置选项
1. 性能优化配置
1 2 3 4 5
| proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; proxy_temp_file_write_size 256k;
|
2. 安全增强配置
1 2 3 4
| client_max_body_size 10G; limit_rate_after 100m; limit_rate 10m;
|
3. 日志记录配置
1 2 3 4 5 6 7
| log_format download '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" ' '"$upstream_addr" "$upstream_status"';
access_log /var/log/nginx/download.access.log download;
|
🔍 故障排查
1. 检查 Nginx 配置
2. 查看 Nginx 状态
1
| sudo systemctl status nginx
|
3. 监控实时日志
1 2
| tail -f /var/log/nginx/access.log tail -f /var/log/nginx/error.log
|
4. 测试下载功能
1 2 3 4 5
| curl -I https://file.mobufan.eu.org:666/my-sh/rsync/hosts.sh
time curl -o /dev/null https://file.mobufan.eu.org:666/my-sh/rsync/hosts.sh
|
🚀 性能优化建议
- 启用 Gzip 压缩 - 减少传输数据量
- 配置缓存 - 提高重复访问速度
- 使用 CDN - 加速全球访问
- 监控系统资源 - 确保服务器稳定运行
- 定期清理日志 - 避免磁盘空间不足
📊 监控和维护
1. 设置监控告警
1 2 3 4 5 6 7 8
| df -h /mnt/file
free -h
iftop -i eth0
|
2. 自动化备份
1 2 3 4
|
tar -czf /backup/file-server-$(date +%Y%m%d).tar.gz /mnt/file find /backup -name "file-server-*.tar.gz" -mtime +30 -delete
|
🎯 使用场景
这个文件服务器架构适用于:
- 🏢 企业内部文件共享
- 🌐 公开软件分发
- 📦 大文件下载服务
- 🔄 多节点负载均衡
- 🛡️ 高可用性部署
通过这个完整的 Nginx + Caddy 文件服务器解决方案,您可以搭建一个高性能、高可用的文件下载服务!🎉
Nginx + Caddy 文件服务器部署指南 🚀