问题
一般在正式的环境下 , 通过给域名添加子路径(如oss)用于下载文件服务器上的文件 。但这种设置子路径的方式不能直接通过API上传文件 , 创建桶等 , 鉴于安全 , 也不能让这种子路径拥有创建、删除文件的权限 。所以 , 一般情况下 , 后台还是通过访问多个minio端口9000实现文件的操作 , 甚至有时 , 还需要在自己的代码中写一套负载均衡的逻辑(之前我的代码中就是这样实现的) 。其实完全可以基于Nginx直接暴露9001,9000, 同时再给web通过/oss/xx的形式访问的能力 。
结构设计
- 实现API负载均衡 , 并可以直接通过nginx:9000商品操作文件服务器 。
- 实现通过/oss/xx仅浏览某个指定的文件服务器上文件(必须是完整目录) 。
- 图片服务器高可靠 。
- 本次搭建使用bitnami/minio镜像 , 此镜像为官方认证的镜像 , 方便使用、集群方便 , 唯一就是不能通过传递--address,--console-address修改端口号 , 此镜像固定API端口为9000,console端口为9001 。好在 , 如果使用非host模式 , 可以此端口号映射成你想要的即可 。
文章插图
本次环境在一台主机上搭建:
主机
软件
网卡
【minio集群将一切访问都交给nginx】端口
192.168.56.61
bitnami/minio:2022.9.1
mybridge
不对外暴露
bitnami/minio:2022.9.1
mybridge
不对外暴露
bitnami/minio:2022.9.1
mybridge
不对外暴露
bitnami/minio:2022.9.1
mybridge
不对外暴露
nginx:1.23.1
mybridge
80,9000,9001
目录结构
在任意目录下 , 创建data{1..4}目录 , 用于保存minio的数据 。创建nginx用于添加nginx的配置文件 。在nginx1.19版本以后 , 可以通过映射 /etc/nginx/templats文件 , 将此目录下的xxx.conf.template文件自动的保存到nginx的配置文件下/etc/nginx/conf.d/ , nginx将 templates下的 *.conf.template文件保存到/etc/nginx/conf.d/目录下以后 , 会删除.template扩展名 。
目录截图:
文章插图
配置文件Docker-compose.yml
此配置文件 , 用于管理4个minio容器和一个nginx容器 。由于bitnami/minio在创建时 , 会自动创建mc client , 这会影响创建的速度 , 我们可以通过MINIO_SKIP_client将它关闭 。关闭后 , 如果需要使用此功能 , 可以进入容器自行设置 。
文章插图
文章插图
配置文件default.conf.template
此配置文件为oss映射配置文件 , 配置后 , web可以通过http://<或名>/oss/<桶名称>/1.png直接访问到到图片 , 但不能操作minio的文件系统 , 如上传、创建桶等 。
文章插图
配置文件minio_api.conf.template
此配置文件用于nginx影射9000端口 , 实现直接通过此端口创建桶、上传等 , 也用于其他client接口 。
文章插图
配置文件minio_console.conf.template
此配置文件 , 用于影射9001端口 , 实现console ui的相关操作 。
推荐阅读
- 处女座|一旦丢了“应届生”身份,会失去多少机会?恐将无缘这些单位
- 古代用方天画戟的名将?吕布的方天画戟是用什么材料做的
- AITO|余承东:充电不方便时可以将AITO问界M5、M7当燃油车开
- 卫星|华为Mate 50将先于iPhone 14实现卫星通信:率先接入北斗卫星
- 余承东|向上捅破天!余承东:华为Mate 50将让信号超越地面
- AirPods|AirPods Pro 2将随iPhone14一起发布:接口大概率还是祖传Lightning
- 不良运动习惯达不到瘦身效果 良好的锻炼习惯将使你终身受益
- 华硕|华硕无畏Pro 2022款即将发布:官宣升级RTX 3060显卡
- 能源|电费飙升 德国将对能源公司“劫富济贫”:一定要熬过冬天
- 血糖|不用扎针了!胰岛素含片或将问世:与注射效果相同