使用Docker-compose、Nginx快速部署Minio分布式对象存储

Minio简介

MinIO是一个对象存储解决方案,它提供了一个Amazon Web Services S3兼容的API,并支持所有S3的核心特性。MinIO可以部署在任何地方——公共云或私有云、裸机基础设施、编排环境和边缘基础设施。主要用于非结构化数据,如:图片、视频、音频、日志文件、Word文档等等。

Docker-compose部署Minio

Docker、Docker-compose安装部署这里不做介绍,如果对Docker、Docker-compose不熟悉的伙伴可以去看博主写的管它们的博文

1、在Linux服务器上创建minio目录
mkdir /data/minio
2、创建docker-compose.yml
2.1、单机部署
version: "3"

services:
  minio:
    image: minio/minio
    container_name: minio
    hostname: minio
    privileged: true
    restart: always
    environment: 
      # 登录账号
      MINIO_ACCESS_KEY: topfus
      # 登录密码
      MINIO_SECRET_KEY: topfus@123
    ports:
      # Api端口
      - 9000:9000
      # 控制台端口
      - 9001:9001
    volumes: 
      - ./data1:/data1
      - ./data2:/data2
      - ./data3:/data3
      - ./data4:/data4
    command: server --console-address ':9001' http://minio/data{1...4}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://192.168.129.165:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3
2.2、分布式部署

1、需要准备至少两台主机,这里准备了四台主机,IP地址分别为:192.168.92.170,192.168.92.171,192.168.92.172,192.168.92.173
2、在每台主机上部署Minio,如下部署配置yml

version: "3"

services:
  minio:
    image: minio/minio
    container_name: minio
    hostname: minio
    privileged: true
    restart: always
    environment: 
      # 登录账号
      MINIO_ACCESS_KEY: topfus
      # 登录密码
      MINIO_SECRET_KEY: topfus@123
    ports:
      # Api端口
      - 9000:9000
      # 控制台端口
      - 9001:9001
    volumes: 
      - ./data1:/data1
      - ./data2:/data2
      - ./data3:/data3
      - ./data4:/data4
    command: server --console-address ':9001' http://192.168.92.170:9000/data{1...4} http://192.168.92.171:9000/data{1...4} http://192.168.92.172:9000/data{1...4} http://192.168.92.173:9000/data{1...4}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://192.168.129.165:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3
3、Nginx配置
user  nginx nginx;
worker_processes  auto;

events {
    worker_connections  4029;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    charset utf-8,gbk; 
    client_max_body_size 1024m;
    client_body_buffer_size 300k;

    sendfile        on;
    tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
	
	upstream minio {
        server 192.168.92.170:9000
        server 192.168.92.171:9000
        server 192.168.92.172:9000
        server 192.168.92.173:9000
	}

    upstream console {
        server 192.168.92.170:9001
        server 192.168.92.171:9001
        server 192.168.92.172:9001
        server 192.168.92.173:9001
    }

    server {
        listen 9000;
        listen [::]:9000;
        server_name localhost;

        ignore_invalid_headers off;
        client_max_body_size 0;
        proxy_buffering off;
        proxy_request_buffering off;

        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_set_header X-Forwarded-Proto $scheme;

            proxy_connect_timeout 300;
            proxy_http_version 1.1;
            proxy_set_header Connection "";
            chunked_transfer_encoding off;
            proxy_pass http://minio;
        }
    }

    server {
        listen 9001;
        listen [::]:9001;
        server_name localhost;

        ignore_invalid_headers off;
        client_max_body_size 0;
        proxy_buffering off;
        proxy_request_buffering off;

        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_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-NginX-Proxy true;

            real_ip_header X-Real-IP;
            proxy_connect_timeout 300;
            proxy_http_version 1.1;
            proxy_set_header Connection "upgrade";
            chunked_transfer_encoding off;
            proxy_pass http://console;
        }
    }
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

珍朱(珠)奶茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值