日常记录

Docker部署minio开源对象存储

在上一篇文章中,按我对对象存储的理解,大概写了一下,这一篇文章就来写写如何在Docker下部署单节点的minio对象存储服务,需要注意的是minio支持分布式形式,麻烦一些,可以翻翻一些大佬写的文章。

部署

在群晖上开设存储空间,如我在/volume2/docker/minio目录下新建dataconfig目录,待一会儿挂载到docker容器的相应目录下。

在SSH下使用docker命令行启动Minio容器,代码如下:

docker run --net=host --name minio \
 -d --restart=always \
 -e MINIO_ROOT_USER=minio \
 -e MINIO_ROOT_PASSWORD=minioxx \
 -e MINIO_SERVER_URL=https://minio.xzf.cn \
 -e MINIO_BROWSER_REDIRECT_URL=https://con.minio.xzf.cn \
 -v /volume2/docker/minio/data:/data \
  minio/minio server /data  --console-address ":9001" --address ":9000"

一些参数解释

启动之后,就可以使用主机IP:9001访问服务的控制台,再使用MINIO_ROOT_USER和MINIO_ROOT_PASSWORD登陆,以下就是登陆之后的页面

反向代理

局域网反向代理

在局域网内的DNS服务(自行架设),加入minio.xzf.cncon.minio.xzf.cn指向群晖主机IP192.168.1.146

在群晖设置反向代理

分别针对9000、9001设置接入点

处理完之后,就可以在局域网的其他主机上使用域名con.minio.xzf.cn访问到minio的控制台。

公网反向代理

由于我需要公网服务,因此还在接入主机(阿里云香港)这里,设置了caddy反向代理,配置如下:

~# cat /etc/caddy/conf.d/minio.conf 
minio.xzf.cn
{
  encode zstd gzip

  header / {
       # Enable HTTP Strict Transport Security (HSTS)
       Strict-Transport-Security "max-age=31536000;"
       X-XSS-Protection "1; mode=block"
       X-Frame-Options "DENY"
       X-Robots-Tag "none"
       -Server
  }

  log {
        output file /var/log/caddy/minio.log {
        roll_size 50MiB # https://caddyserver.com/docs/caddyfile/directives/log#log
        roll_keep 2 # https://caddyserver.com/docs/caddyfile/directives/log#log
    }
    level INFO
  }
 
  reverse_proxy 192.168.1.146:9000 {
    header_up X-Real-IP {http.request.remote.host}
    header_up X-Forwarded-For {http.request.remote.host}
    header_up X-Forwarded-Port {http.request.port}
    header_up X-Forwarded-Proto {http.request.scheme}
  }
}

做完局域网与公网的反向代理之后,就可以使用minio.xzf.cn在局域网与公网无差别访问到minio对象存储服务。

运维要点

一些运维安全注意点

  1. con.minio.xzf.cn控制台页面不建议暴露到公共服务网点,我也只是在局域网上的nginx部署了这个局域站点,就算真部署了控制台站点,也务必加上访问IP白名单。
  2. 密码复制点,最好随机生成。
  3. 后续想到再加

参考资料

  1. 系统环境参数
Exit mobile version