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
相关推荐
asong7 小时前
没有源代码,AI 也能拆解软件:这个开源项目已有 3.7 万 Star
javascript·后端·github
知守观7 小时前
18年老兵的十条开发军规:每条背后都是一个翻车现场
java·后端·程序员
韩振方7 小时前
为什么 curl -I 显示 200,页面打开还是报错?
后端
小稀土1237 小时前
9 类行业怎么用私有化部署研发管理工具:涉密、制造、金融、科研院所一次盘全
后端
懒洋洋不想起床7 小时前
DEX 与未来交易市场:为什么去中心化金融正在进入新阶段
后端
东风微鸣7 小时前
Rook-Ceph 数据修复实战
后端
imDwAaY7 小时前
WebSocket 和 SSE 有什么区别?从实时通信到 AI 流式输出
后端·websocket
三千星7 小时前
Java开发者转型AI工程化Week 7:从散落知识点到可上线的应用
后端
胡写代码7 小时前
雪花 ID 传到前端就变了个数?我用全局 Long 转 String 一次收口
前端·后端
SimonKing7 小时前
一只离线鼠鼠,干翻了一堆在线格式转换网站
java·后端·程序员