—— 基于云服务器 (VPS)大盘鸡 + MinIO 的私有云存储(对象存储)实战指南
这篇文章,我将完整讲解:
内存涨价、硬盘涨价 云服务价格也水涨船高,都不想要浪费手里面的云资源,那么自建存储系统就可以将你手机的闲置云资源利用起来。
而我们通常把一台大硬盘 服务器 (VPS) 戏称为「大盘鸡」——
如果你擅长使用它,它不仅能存文件,甚至可以成为你自己的 对象存储 + 私有网盘 + 备份系统。
先看一下我们的目标架构:
本地 / 程序 / 网站 ↓ 自定义域名 ↓ Nginx ↓ MinIO (对象存储) ↓ VPS硬盘(大盘鸡)
它可以实现:
我们需要的核心组件:
| 组件 | 用途 |
|---|---|
| VPS(大盘鸡) | 存储空间 |
| MinIO | 对象存储服务 |
| Nginx | 反代 + 域名 |
| Docker(可选) | 易于管理 |
| 域名 + SSL | 对外访问 |
建议配置:
本次演示的 VPS 是: 绿云GreenCloud
注
演示的是 ubuntu22.04,其它未测试,Docker的安装是我让ai糅合的一键脚本。其他的系统安装docker需要参考 官方安装方法。
bashbash <(curl -s https://crazyikun.eu.org/sh/node_docker.sh)
bashmkdir -p /data/minio/{data,config}
cd /data/minio
docker-compose.yml 文件 需要注意缩进和空格yamlnetworks:
minio-net:
driver: bridge
services:
minio:
# 这里的镜像版本可以自己选择
image: minio/minio:RELEASE.2024-01-01T16-36-33Z
container_name: minio
restart: always
# 只监听本机 127.0.0.1,不对公网开放 稍后使用nginx反代
ports:
- "127.0.0.1:9000:9000" # S3 API
- "127.0.0.1:9090:9090" # Web 控制台
environment:
MINIO_ROOT_USER: 控制台账户
MINIO_ROOT_PASSWORD: 控制台密码
# 数据存储在你的数据盘 可自行修改文件映射 冒号前面是本地文件夹
volumes:
- /data/minio/data:/data
- /data/minio/config:/root/.minio
command: server /data --console-address ":9090"
networks:
- minio-net
参数说明:
| 参数 | 含义 |
|---|---|
| MINIO_ROOT_USER | 控制台账户≥ 3 个字符 |
| MINIO_ROOT_PASSWORD | 控制台密码≥ 8 个字符 |
| 9000 | API 接口端口 |
| 9090 | 后台管理端口 |
| /data/minio/data | 存储目录 |
| /data/minio/config | 配置文件 |
bashdocker compose up
bashdocker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' minio
bashsudo apt update
bashsudo apt install nginx
bashsudo apt install certbot python3-certbot-nginx

bashsudo certbot --nginx -d 你的域名这里
# -------------------------- # MinIO 控制台(adminio.examples.com)下面所有的adminio.examples.com都需要替换 # -------------------------- server { listen 443 ssl http2; server_name adminio.examples.com; # 证书路径(请改成你自己的实际路径) ssl_certificate /etc/ssl/examples/fullchain.pem; ssl_certificate_key /etc/ssl/examples/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { # 证书路径(请改成你自己的实际路径) proxy_pass http://172.18.0.2:9090; #如果这里的内网不一样改为上面查看docker的网络 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 https; proxy_buffering off; # WebSocket 支持(非常关键) proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } # -------------------------- # MinIO API(minio.examples.com)下面所有的minio.examples.com都需要替换 # -------------------------- server { listen 443 ssl http2; server_name minio.examples.com; ssl_certificate /etc/ssl/examples/fullchain.pem; ssl_certificate_key /etc/ssl/examples/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { # 注意末尾去掉斜杠 proxy_pass http://172.18.0.2:9000;#如果这里的内网不一样改为上面查看docker的网络 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 https; proxy_buffering off; # S3 特殊 Header proxy_set_header Authorization $http_authorization; } }
bashsystemctl status nginx
bashsudo systemctl restart nginx
相关信息
如果你顺利到了这一步那么恭喜你!
通过浏览器访问你反代9090端口的域名就可以访问你minio
账户密码就是刚刚docker的配置文件里面设置的
你就拥有了:
✅ 自己的 对象存储服务
✅ 可以放在博客 / 软件 / APP 里使用
✅ 不怕图片失效


这样你就创建好存储桶了


注意
这里一定要记住了

| 配置参数 | 需要填的内容 |
|---|---|
| 图床配置名称 | 默认或者随便 |
| endPoint | 域名映射9000端口那个 |
| port | 443 |
| useSSL | yes |
| 允许不安全证书 | yes |
| accessKey | 上面在面板获取的 |
| secretKey | 上面在面板获取的 |
| bucket | 存储桶名字 |
| 同名文件 | 自定 |
| 基础目录 | 自定 |
| 自定义域名 | 自定 |
| 自定义基础路径 | 自定 |
| 自动归档 | 自定 |
| 自定义MIME | 默认即可 |
提示
MinIO 提供了与 Amazon S3 API 完全兼容的存储服务,使得它能够支持几乎所有 S3 客户端工具和应用程序。具体的api文档可参考S3 API 兼容性
如果你想玩高级一点:
✅ 接入 Cloudflare 做 CDN
✅ 配合 Nginx 限速 / 鉴权
✅ 设置上传 API (供 App 调用)
✅ 多台 VPS 做分布式存储
✅ rsync / rclone 自动备份到另一台
你就拥有了:
“私人版阿里云 OSS + 百度网盘 + CDN 加速 + 跨国存储系统”
成本:一台大盘鸡的钱。
这种方案特别适合:
✅ 图床站长
✅ 视频站
✅ 做资源站
✅ 做私有云
✅ 程序员放资料
✅ 备份服务器数据
✅ 自建音乐库、视频库
而且——
它完全属于你!
很多人把 VPS 只当服务器,
但实际上,它是你可控的一块「云硬盘」。
大盘鸡 + MinIO = 自由云存储
只要你会一点 Linux,就能:

