在 Linux 环境下,MinIO + Nginx 的常见集成方式主要有三种,取决于你的使用场景:
适用于:
http://127.0.0.1:9000http://127.0.0.1:9001minio.example.comwget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data --console-address ":9001"
/etc/nginx/conf.d/minio.confserver {
listen 80;
server_name minio.example.com;
# MinIO API
location / {
proxy_pass http://127.0.0.1:9000;
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;
}
# MinIO Console
location /console/ {
proxy_pass http://127.0.0.1:9001/;
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;
}
}
⚠️ MinIO Console 必须配置
MINIO_BROWSER_REDIRECT_URL
启动 MinIO 时:
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=password
export MINIO_BROWSER_REDIRECT_URL=https://minio.example.com/console/
./minio server /data --console-address ":9001"
server {
listen 443 ssl;
server_name minio.example.com;
ssl_certificate /etc/nginx/ssl/minio.crt;
ssl_certificate_key /etc/nginx/ssl/minio.key;
location / {
proxy_pass http://127.0.0.1:9000;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
}
location /console/ {
proxy_pass http://127.0.0.1:9001/;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
}
}
适用于:
location /files/ {
proxy_pass http://127.0.0.1:9000/;
}
或直接使用 MinIO 公共 bucket + Nginx cache。
upstream minio_cluster {
server 10.0.0.1:9000;
server 10.0.0.2:9000;
server 10.0.0.3:9000;
}
server {
location / {
proxy_pass http://minio_cluster;
}
}
原因:
Host 头被修改X-Forwarded-Proto✅ 解决:
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
确认:
MINIO_BROWSER_REDIRECT_URL=https://域名/console/
用户 → Nginx(HTTPS) → MinIO
↓
MinIO Console
如果你需要:
可以告诉我你的具体使用场景,我可以直接给你完整配置。