一、官方文件
1、minio官网
https://min.io/
2、中文文档
http://docs.minio.org.cn/docs/
3、集群原理

二、集群部署
1、在每台服务器上创建minio目录
mkdir -p /app/minio/{run,data1,data2} && mkdir -p /etc/minio
2、下载或者上传下载好的minio二进制文件
https://dl.min.io/server/minio/release/linux-amd64/minio
3、集群启动文件配置

vim /app/minio/run/minio-run.sh
集群节点 172.16.9.26 [注意address配置需要和部署机器的IP一致,否则无法启动]内容为:
#!/bin/bash
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=admin123
/app/minio/run/minio server --config-dir /etc/minio \
--address "172.***.***.26:23561" \
--console-address "172.***.***.23:23560" \
http://172.***.***.26/app/minio/data1 http://172.***.***.26/app/minio/data2 \
http://172.***.***.23/app/minio/data1 http://172.***.***.23/app/minio/data2 \
集群节点 172.16.9.23 内容为:
#!/bin/bash
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=admin123
/app/minio/run/minio server --config-dir /etc/minio \
--address "172.***.***.23:23561" \
--console-address "172.***.***.23:23560" \
http://172.***.***.26/app/minio/data1 http://172.***.***.26/app/minio/data2 \
http://172.***.***.23/app/minio/data1 http://172.***.***.23/app/minio/data2 \
4、创建Minio.server,将minio加入系统服务
vim /usr/lib/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/app/minio/run/
ExecStart=/app/minio/run/minio-run.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
修改配置文件后需要重加载配置
systemctl daemon-reload
5、权限修改
chmod +x /usr/lib/systemd/system/minio.service && chmod +x /app/minio/run/minio && chmod +x /app/minio/run/minio-run.sh
6、启动集群
systemctl start minio
systemctl enable minio
查看集群状态
systemctl status minio.service -l

关闭服务
systemctl stop minio
三、Nginx反向代理与负载均衡
upstream minio_api {
least_conn;
server 172.*.*.23:23561 max_fails=3 fail_timeout=5s;
server 172.*.*.26:23561 max_fails=3 fail_timeout=5s;
}
upstream minio_console {
least_conn;
server 172.*.*.23:23560 max_fails=3 fail_timeout=5s;
server 172.*.*.26:23560 max_fails=3 fail_timeout=5s;
}
server {
listen 9001;
server_name minio_console;
access_log /app/zhoujun/minio/logs/minio.com_access.log;
error_log /app/zhoujun/minio/logs/minio.com_error.log;
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;
# This is necessary to pass the correct IP to be hashed
real_ip_header X-Real-IP;
proxy_connect_timeout 300;
# To support websockets in MinIO versions released after January 2023
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
chunked_transfer_encoding off;
# This uses the upstream directive definition to load balance
proxy_pass http://minio_console;
}
}
server {
listen 9000;
server_name minio_api;
access_log /app/zhoujun/minio/logs/minio.com_access.log;
error_log /app/zhoujun/minio/logs/minio.com_error.log;
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;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass http://minio_api;
}
}

ps:配置的时候以最新的官网为准
四、集群部署结果
