minio服务集群搭建

1.创建文件

js 复制代码
mkdir -p data/{minio1,minio2,minio3,minio4}
touch docker-compose.yml
touch minio.conf

2.docker-compose.yml

js 复制代码
version: "3.8"

services:
  minio1:
    image: registry.cn-hangzhou.aliyuncs.com/snow-io/minio:RELEASE.2023-01-02T09-40-09Z
    container_name: minio1
    restart: always
    command: server http://minio{1...4}/data --console-address ":9001"
    environment:
      MINIO_ROOT_USER: admin
      MINIO_ROOT_PASSWORD: hjm029796
    volumes:
      - ./data/minio1:/data
    networks:
      - minio_net

  minio2:
    image: registry.cn-hangzhou.aliyuncs.com/snow-io/minio:RELEASE.2023-01-02T09-40-09Z
    container_name: minio2
    restart: always
    command: server http://minio{1...4}/data --console-address ":9001"
    environment:
      MINIO_ROOT_USER: admin
      MINIO_ROOT_PASSWORD: hjm029796
    volumes:
      - ./data/minio2:/data
    networks:
      - minio_net

  minio3:
    image: registry.cn-hangzhou.aliyuncs.com/snow-io/minio:RELEASE.2023-01-02T09-40-09Z
    container_name: minio3
    restart: always
    command: server http://minio{1...4}/data --console-address ":9001"
    environment:
      MINIO_ROOT_USER: admin
      MINIO_ROOT_PASSWORD: hjm029796
    volumes:
      - ./data/minio3:/data
    networks:
      - minio_net

  minio4:
    image: registry.cn-hangzhou.aliyuncs.com/snow-io/minio:RELEASE.2023-01-02T09-40-09Z
    container_name: minio4
    restart: always
    command: server http://minio{1...4}/data --console-address ":9001"
    environment:
      MINIO_ROOT_USER: admin
      MINIO_ROOT_PASSWORD: hjm029796
    volumes:
      - ./data/minio4:/data
    networks:
      - minio_net

  nginx:
    image: registry.cn-hangzhou.aliyuncs.com/snow-io/nginx:1.22
    container_name: nginx_minio
    restart: always
    ports:
      - "9200:9200"      # MinIO API
      - "9201:9201"      # MinIO 控制台
    volumes:
      - ./minio.conf:/etc/nginx/conf.d/minio.conf
    depends_on:
      - minio1
      - minio2
      - minio3
      - minio4
    networks:
      - minio_net

networks:
  minio_net:
    driver: bridge

3.minio.conf

js 复制代码
upstream minio_api {
    server minio1:9000;
    server minio2:9000;
    server minio3:9000;
    server minio4:9000;
}

upstream minio_console {
    server minio1:9001;
    server minio2:9001;
    server minio3:9001;
    server minio4:9001;
}

server {
    listen 9200;
    server_name _;

    # MinIO API 反向代理
    location / {
        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_pass http://minio_api;
    }
}

server {
    listen 9201;
    server_name _;

    # MinIO 控制台反向代理
    location / {
        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_pass http://minio_console;
    }
}

4.启动

js 复制代码
docker compose down && docker compose up -d
相关推荐
Charlie_Byte14 分钟前
Spring AI 2 手把手:把 filesystem MCP Server 跑通(SSE / stdio + 真调工具)
后端
程序猿DD22 分钟前
OctaFuse Gateway 2.11.0:流式请求优化、用户折扣策略与错误契约升级
前端·后端
Bs_MoneyMagnet26 分钟前
基于springboot+vue的非遗物质文化遗产系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计
打工仔折腾 AI1 小时前
Prometheus 告警推钉钉:从单群 Webhook 到跨网络 Alertmanager 实战
人工智能·后端·python·性能优化
console.log('npc')1 小时前
06 — Model 层:数据模型与操作
前端·后端·node.js·express
aramae1 小时前
模拟实现memset()(C语言)
c语言·开发语言·后端
2501_933923252 小时前
Spring Bean作用域揭秘:单例、原型、请求与会话的区别
java·后端·spring·java-ee
高级程序源2 小时前
django招聘网站信息爬取与分析系统79704-计算机课程设计、毕业设计
后端·python·mysql·小程序·django·flask·课程设计
伊信2 小时前
Spring AI 基础学习与应用
java·后端
步行cgn3 小时前
Spring 通过 factory-method 实例化 Bean 详解与常见错误排查
java·后端