# minio

#### minio的docker-compose的文件
```
# vi docker-compose.yaml

version: '3'
services:
  velero-minio:
    image: minio/minio:latest
    restart: always # 自动重启
    privileged: true  
    ports:
      - 33900:9000 # client 端口
      - 33901:9001 # console 端口
    volumes:
      - ./data:/data
    command: server /data --console-address :9001 --address :9000 
    environment:
      - MINIO_ROOT_USER=
      - MINIO_ROOT_PASSWORD=!
      # 如果你的minio使用容器启动的，不是独立主机、正式使用的端口与部署的端口不一致，可能显示的地址错误
      - MINIO_SERVER_URL=http://minio.abc.com
      # 如果你的minio使用容器启动的，不是独立主机、正式使用的端口与部署的端口不一致，可能显示的地址错误
      - MINIO_BROWSER_REDIRECT_URL=http://minio-console.abc.com
```

#### MINIO_SERVER_URL 和 MINIO_BROWSER_REDIRECT_URL

- MINIO_BROWSER_REDIRECT_URL

这个是用来访问控制台的，可以使用代理

```
    location /minio-console/ {
        rewrite ^/minio-console/(.*) /$1 break; # 地址重新，必须
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade; # 开启websocket，必须
        proxy_set_header Connection "upgrade";
        proxy_pass http://localhost:9001;  # MinIO 控制台的地址和端口
    }
}



```

- MINIO_SERVER_URL

API端点，**console**也需要用这个端点访问API，**如果这个端点地址不能被console访问，console会出现无法登录或者白屏**，如果你的服务器不能回路，那需要做主机解析。如果你确实不能把API地址设置一个单独的域名，可以设置代理，但是minio要兼容s3协议，要求的路径是**http://<hostname>:<port>/<bucket_name>/<object_name>** , 此时会出现无法下载，虽然下面的nginx路径使用程序替换掉了一部分，那意味着上传的时候，如果使用的是api，需要加上**minio** 

注：以上内容未验证

```
location /minio/ {

    rewrite ^/minio/(.*) /$1 break;
    proxy_pass http://192.168.65.2:9000;
}
```



#### 启动服务
```
docker-compose -f docker-compse.yaml up -d


```

#### 网络共享

```
yum install epel-release
yum install s3fs-fuse

echo <USER>:<PASSWORD> > /etc/passwd-s3fs
chmod 640 /etc/passwd-s3fs

#测试一下
# s3fs -o passwd_file=/etc/passwd-s3fs upload /data/nfs -o use_path_request_style -o url=http://172.130.100.91:9000

# 开机自动挂载
upload /data/nfs fuse.s3fs _netdev,allow_other,use_path_request_style,url=http://172.130.100.91:9000	 0	 0


```