首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MinIO 社区版被故意阉割,Web管理功能全面移除,来试试国产的RustFS?

MinIO 社区版被故意阉割,Web管理功能全面移除,来试试国产的RustFS?

原创
作者头像
程序员皮皮林
发布2026-07-20 21:53:34
发布2026-07-20 21:53:34
410
举报

目录

  • 一、MinIO 牺牲开源精神走向商业利益
  • 二、寻找平替,尝试 RustFS
    • 2.1. 准备好以下目录结构
    • 2.2. /mnt/rustfs/ 目录下启动
    • 2.3. 开放安全组
    • 2.4. 测试访问
    • 2.5. 配置 https
  • 总结

一、MinIO 牺牲开源精神走向商业利益

今天部署好 minio 后打开 web 界面发现只剩下纯对象存储:

image.png
image.png

MinIO Web 界面只剩纯对象存储

图来源于小众软件

原因是 2 月 26 号的一个 PR 以"精简控制台"为由删了 114736 行代码:

image.png
image.png

精简控制台 PR 删除 114736 行代码

而官方这么说:**"对于需要图形界面完成管理的场景,请迁移到我们的商业产品(AiStor),社区用户则可以使用 mc 命令"。** 网友对此表示强烈谴责:)

二、寻找平替,尝试 RustFS

RustFS 是一个用 Rust 语言构建的高性能分布式对象存储系统,定位为 MinIO 的替代方案。

Rust 的安全性和高性能以及 Apache 2.0 的开源协议是我将它作为 MinIO 的平替的主要原因。

因为 RustFS 是比较新的项目,按照官网的 docker 部署命令有点问题。

但官方在相关 issue 中已经给了解决方案,下面是我结合该方案并使用 docker-compose 部署成功的实操记录:

2.1. 准备好以下目录结构

代码语言:javascript
复制
/mnt/rustfs/
├── data/
└── docker-compose.yml

docker-compose.yml 文件内容:

代码语言:javascript
复制
services:
  rustfs:
    image:rustfs/rustfs:latest
    container_name:rustfs
    ports:
      -"9000:9000"# API 端口
      -"9001:9001"# Console 端口
    volumes:
      -./data:/data# 数据存储
    environment:
      -RUSTFS_ROOT_USER=rustfsadmin
      -RUSTFS_ROOT_PASSWORD=rustfsadmin
      -RUSTFS_ADDRESS=:9000
      -RUSTFS_CONSOLE_ADDRESS=:9001
      -RUSTFS_CONSOLE_ENABLE=true
      -RUSTFS_LOG=warn
    restart:unless-stopped

2.2. /mnt/rustfs/ 目录下启动

docker-compose up -d 启动容器:

image.png
image.png

docker-compose 启动容器

docker compose ps 查看状态:

image.png
image.png

docker compose ps 查看状态

2.3. 开放安全组

如果访问不了记得新增安全组,开放 9000/9001 的端口:

image.png
image.png

开放安全组端口

2.4. 测试访问

控制台页面访问 9001 端口:

默认的账号密码:rustfsadmin/rustfsadmin

image.png
image.png

RustFS 登录页

image.png
image.png

RustFS 控制台界面

2.5. 配置 https

为了安全考虑,我希望服务只能由 https 协议通过 nginx 转发来访问,而不能直接通过 ip 访问:

首先将 docker-compose.yml 文件做如下改动:

代码语言:javascript
复制
ports:
  # - "9000:9000"   # API 端口
  # - "9001:9001"   # Console 端口
  - "127.0.0.1:9000:9000"   # API 端口
  - "127.0.0.1:9001:9001"   # Console 端口

然后创建一个子域名 rustfs.yourdomain.cn 映射到 yourdomain.cn:9001,nginx 配置如下:

代码语言:javascript
复制
upstream rustfs_console {
    server localhost:9001;
}

upstream rustfs_api {
    server localhost:9000;
}

# RustFS Console (Web UI)
server {
    listen 443 ssl;
    server_name rustfs.yourdomain.cn;

    ssl_certificate /etc/letsencrypt/live/yourdomain.cn-0001/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.cn-0001/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        proxy_pass http://rustfs_console;
        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_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Port $server_port;

        # WebSocket 支持
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

# RustFS API
server {
    listen 443 ssl;
    server_name rustfsapi.yourdomain.cn;

    ssl_certificate /etc/letsencrypt/live/yourdomain.cn-0001/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.cn-0001/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        proxy_pass http://rustfs_api;
        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;
    }
}

# HTTP 重定向到 HTTPS
server {
    listen 80;
    server_name rustfs.yourdomain.cn rustfsapi.yourdomain.cn;
    return 301 https://$server_name$request_uri;
}

测试 https 访问:

image.png
image.png

测试 https 访问

总结

随着 MinIO 社区版自 2024 年 2 月起全面移除 Web 管理界面,标志着其加速向商业化闭源演进,对广大习惯图形化管理的用户来说无疑是一种"背刺"。

尽管 MinIO 声称 CLI(如 mc)功能更专业,但对中小企业、个人开发者甚至初学者而言,图形界面不可或缺。

同时,RustFS 作为国产、开源、Rust 编写的分布式对象存储项目,凭借以下优势,已具备成为 MinIO 替代品的潜力:

对比项

MinIO(社区版)

RustFS

开源协议

AGPL v3(限制较多)

Apache 2.0(更宽松)

管理界面

✅ 已被移除(需付费)

✅ 自带 Web 控制台

命令行支持

mc

REST API + 后续工具支持

部署复杂度

简单

较简单,支持 Docker Compose

性能与安全性

高,但维护封闭

Rust 架构,天生安全高效

中文社区与生态支持

较少(商业倾向)

正在建设中

注意:RustFS 项目还处于早期阶段,功能在逐步完善,生产环境部署需做额外验证。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、MinIO 牺牲开源精神走向商业利益
  • 二、寻找平替,尝试 RustFS
    • 2.1. 准备好以下目录结构
    • 2.2. /mnt/rustfs/ 目录下启动
    • 2.3. 开放安全组
    • 2.4. 测试访问
    • 2.5. 配置 https
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档