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;
}
}
}