1. docker安装minio

docker pull minio

2. docker安装ngnix

docker pull nginx

3. nginx配置

server {
    listen 80;
    server_name 192.168.197.148;  # 必须与 MINIO_SERVER_URL 一致(无端口)

    # 关键:/wengen/ 路径映射到 MinIO 的 Bucket 根目录
    location /wengen/ {
        # 1. 代理到 MinIO 容器内部地址(末尾保留 / 表示路径替换)
        proxy_pass http://172.17.0.2:9000/;  # 注意:末尾的 / 不可省略!

        # 2. 强制重写 Host 头(必须与 MINIO_SERVER_URL 完全一致)
        proxy_set_header Host 192.168.197.148:9000;  # 硬编码为 MinIO 配置的域名+端口

        # 3. 传递客户端真实信息(关键用于签名验证)
        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;

        # 4. 禁用缓冲(避免大文件传输问题)
        proxy_buffering off;

        # 5. 重要:修复 S3 API 的 Transfer-Encoding 头
        proxy_request_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Connection "";

        # 6. 超时设置(根据网络环境调整)
        proxy_connect_timeout 300;
        proxy_send_timeout 600;
        proxy_read_timeout 600;
        proxy_buffer_size 128k;
        proxy_buffers 4 256k;
        proxy_busy_buffers_size 256k;
    }

    # 可选:健康检查路径(避免误拦截)
    location /healthz {
        return 200 'OK';
        add_header Content-Type text/plain;
    }
}

4. 启动minio

docker run -d   --name my_minio   -p 9000:9000   -p 9001:9001   -v /wz_conf/minio/data:/data   -v /wz_conf/minio/config:/root/.minio   -e MINIO_ROOT_USER=admin   -e MINIO_ROOT_PASSWORD=admin123   minio/minio server /data --console-address ":9001"

5. 启动nginx

docker run -d   --name nginx-minio   -p 80:80   -v /nginx/config/minio-proxy.conf:/etc/nginx/conf.d/default.conf   --network bridge   <minio的容器id或者容器名称>

更多推荐