怎样部署好MiniO分布式文件存储

本文介绍如何部署Minio文件存储服务及实现HTTPS访问的方法。包括Minio的Docker部署脚本、Nginx配置SSL证书流程、业务代码适配HTTPS示例及Minio永久链接设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两年把Minio吹上天了,是真的好用文件存储这块不用咱们手撸代码了,就导致了一大批跟风用户
我之前是用FastDFS的,后来也不得不跟风了

本文简单说下如何部署Minio以及重点讲下如何使用https访问问题

Minio部署

部署问题直接上脚本:

# Minio文件存储服务
docker run --name minio \
	-p 9000:9000 \
	-p 9009:9009 \
	--restart=always \
	-e TZ="Asia/Shanghai" \
	-d --restart=always \
	-e "MINIO_ROOT_USER=username" \
	-e "MINIO_ROOT_PASSWORD=password" \
	-v /datas/minio/data:/data \
	-v /datas/minio/conf:/root/.minio \
	minio/minio server /data \
	--console-address '0.0.0.0:9009'

上面搞定后,就直接可以通过浏览器访问了
http://127.0.0.1:9000/, 输入username和password即可,minio里面的配置自行百度

HTTPS访问

ssl证书

可以去腾讯云申请的ssl证书文件到服务器,Nginx的话上传解压后的nginx文件夹下的1_xxx.key和2_xxx.crt文件,
nginx配置,增加

# 配置minio的https访问
  server {
    listen 443 ssl;
    server_name your.domain.com;
    # 证书配置,写服务绝对路径
    ssl_certificate /usr/local/nginx/conf/ssl/your.domain.com_bundle.crt;
    ssl_certificate_key /usr/local/nginx/conf/ssl/your.domain.com.key;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    location / {
      proxy_pass https://172.17.0.3:9000;
      # 下面这三个需要有
      proxy_set_header  Host       $host;
      proxy_set_header  X-Real-IP    $remote_addr;
      proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

上面配置了Nginx转发,重启Nginx后,https就生效了

业务上修改支持Https协议

 private static MinioClient initMinio(String minioUrl, String minioName,String minioPass) {
        if (minioClient == null) {
            try {
                minioClient = MinioClient.builder()
                        .endpoint(minioUrl, 443, true)// 这里配置使用https协议的
                        .credentials(minioName, minioPass)
                        .build();
                // FIXME 配置是否忽略掉证书检查
    			// minioClient.ignoreCertCheck();// 如果有证书,过期了可以开启,正常使用不推荐 by junwei
            } catch (Exception e) {
            	log.error("minioClient异常", e);
            }
        }
        return minioClient;
    }

上面代码是参考,获取minioClient客户端需要用ssl访问

此时,就可以上传文件到minio文件服务器啦

访问Https下的Minio的文件

开启了ssl后,还需要将证书放到Minio的配置目录下,我这里是这样的:

[root@ethings certs]# pwd
/data/minio/config/certs
[root@ethings certs]# ls
CAs  private.key  public.crt 

上面private.keypublic.crt这两个文件也是nginx配置时的ssl证书文件,Minio中
在certs目录中,私钥必须命名private.key,公钥必须命名public.crt
重启Minio配置完成https访问,现在就可以用https访问文件了。

注意: 重启minio,如果提示:

RROR Unable to load the TLS configuration: Missing TLS password
> Please set the password to environment variable `MINIO_CERT_PASSWD` so that the private key can be decrypted

这是因为生成证书的时候设置了密码:使用受密码保护的私钥时,必须MINIO_CERT_PASSWD使用以下命令通过环境变量提供密码:export MINIO_CERT_PASSWD=<PASSWORD>。 设置完成后,再重启Minio

Minio永久访问链接

需要使用 mc命令设置

./mc config host add minio http://172.12.3.1:9999 username password   //添加minio server
./mc  policy  set  download  minio/yourbucket  //设置需要开放下载的bucket, 注意需要带minio 

补充

补充一个docker-compose启动方式的 docker-compose.yml:

version: '3'
services:
  minio:
    image: minio/minio
    command: server  --address "open.abc.com:9000" --console-address ":9009" /data
    ports:
      - "9000:9000"
      - "9009:9009"
    extra_hosts:
      - "dns_1:172.17.0.1"
    environment:
      MINIO_ACCESS_KEY: "username"
      MINIO_SECRET_KEY: "password"
    volumes:
      - /datas/minio/data:/data
      - /datas/minio/config:/root/.minio
    network_mode: host
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

junehappylove

急急如律令,buibui~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值