MinIO #
运行docker容器 #
docker-compose.yml:
yaml
services:
minio:
image: minio/minio:latest
restart: on-failure
command: server /data
volumes:
- minio_data:/data
ports:
- 127.0.0.1:9000:9000
environment:
- TZ=Asia/Shanghai
- MINIO_ROOT_USER=root
- MINIO_ROOT_PASSWORD=123456
- MINIO_SERVER_URL=http://minio.example.com
minio-console:
image: minio/minio:latest
restart: on-failure
command: server /data --console-address :9001
ports:
- 127.0.0.1:9001:9001
environment:
- TZ=Asia/Shanghai
- MINIO_SERVER_URL=http://minio:9000
- MINIO_BROWSER_REDIRECT_URL=http://minio-console.example.com
volumes:
minio_data:
minio
容器中的MINIO_SERVER_URL
服务器链接就是用于客户端配置的endpoint地址(会影响接口签名结果),尚不允许添加相对路径(截至2024年7月最新版本)。
minio-console
容器中的MINIO_SERVER_URL
服务器链接可以是内网链接地址。
minio-console
容器中的MINIO_BROWSER_REDIRECT_URL
重定向链接配置,尚不允许添加相对路径(截至2024年7月最新版本)。
备份/还原数据 #
详见docker篇。
配置nginx反向代理 #
方案 A:独立域名 #
text
# MinIO Endpoint
server {
# 配合 minio 容器中的 MINIO_SERVER_URL 配置项
server_name minio.example.com;
listen 80;
access_log /var/log/nginx/minio.access.log main;
error_log /var/log/nginx/minio.error.log;
location / {
proxy_pass http://127.0.0.1:9000;
proxy_http_version 1.1;
proxy_set_header Host $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-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# MinIO Console
server {
# 配合 minio-console 容器中的 MINIO_BROWSER_REDIRECT_URL 配置项
server_name minio-console.example.com;
listen 80;
access_log /var/log/nginx/minio-console.access.log main;
error_log /var/log/nginx/minio-console.error.log;
location / {
proxy_pass http://127.0.0.1:9001;
proxy_http_version 1.1;
proxy_set_header Host $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-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
方案 B:相对路径 #
此方案只使用一个域名用于Endpoint、Console和其他网站,将Bucket名称作为一级路径(需要事先创建好Bucket)。
text
server {
server_name example.com;
listen 80;
# MinIO Endpoint - bucket-foo
location /bucket-foo {
access_log /var/log/nginx/minio-bucket-foo.access.log main;
error_log /var/log/nginx/minio-bucket-foo.error.log;
proxy_pass http://127.0.0.1:9000;
proxy_http_version 1.1;
proxy_set_header Host $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-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
# MinIO Console
location /minio-console/ {
access_log /var/log/nginx/minio-console.access.log main;
error_log /var/log/nginx/minio-console.error.log;
proxy_pass http://127.0.0.1:9001/;
proxy_http_version 1.1;
proxy_set_header Host $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-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
# MionIO Console - api forward
# (这里手动拦截并添加相对路径)
location /api/v1/ {
rewrite ^(.*)$ /minio-consle$1 last;
}
}