在 Linux 环境下对 MinIO 做负载均衡,常见做法有两种:使用 MinIO 自带的分布式模式 + 外部负载均衡器,或者 直接使用反向代理/负载均衡器。下面按场景给你系统讲一下。
minio server /data1 /data2 /data3
minio server http://node{1...4}/data
✅ 生产环境一定要用分布式 + 负载均衡
yum install nginx -y
# 或
apt install nginx -y
upstream minio_cluster {
server 192.168.1.11:9000;
server 192.168.1.12:9000;
server 192.168.1.13:9000;
server 192.168.1.14:9000;
}
server {
listen 9000;
server_name minio.example.com;
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 "";
proxy_pass http://minio_cluster;
}
}
✅ 建议:
upstream minio_cluster {
least_conn;
...
}
frontend minio_front
bind *:9000
default_backend minio_back
backend minio_back
balance roundrobin
server minio1 192.168.1.11:9000 check
server minio2 192.168.1.12:9000 check
server minio3 192.168.1.13:9000 check
server minio4 192.168.1.14:9000 check
VIP: 192.168.1.100
↓
Nginx Master / Backup
↓
MinIO Cluster
MinIO 新版:
Console 不要做负载均衡转发 API
server {
listen 9001;
location / {
proxy_pass http://minio_console;
}
}
MINIO_SERVER_URLexport MINIO_SERVER_URL="http://minio.example.com:9000"
否则浏览器上传会失败
listen 443 ssl;
Client
↓
Nginx / HAProxy (LB)
↓
MinIO Node1
MinIO Node2
MinIO Node3
MinIO Node4
Linux 上 MinIO 负载均衡 = 分布式部署 + Nginx/HAProxy 统一入口 + 正确配置 Host/URL
如果你愿意,我可以: