使用Docker搭建MinIO集群服务
概述
因为在云服务器上默认只有一块磁盘,如果直接在系统盘上安装MinIO,会被拒绝,所以这里采用Docker的方式绕过这一限制
操作环境
操作系统
CentOS 7.9
MinIO版本
RELEASE.2023-03-09T23-16-13Z
服务器host信息
192.168.10.1 minio1
192.168.10.2 minio2
192.168.10.3 minio3
192.168.10.4 minio4
192.168.10.5 nginxserver
域名信息
注意:以下为假定的域名配置,实际部署时替换为自己的真实域名,并提供有效的证书信息
MinIO后台域名:console.minio.com
MinIO接口服务域名:api.minio.com
前提条件
首先要确保每台minio服务器上已经安装好了Docker组件,参见在CentOS中安装Docker
并且确保在nginxserver主机上安装了nginx,参见在CentOS中安装和使用nginx
安装
在每台机器上执行以下命令
注意:确保各个minio服务器之间的防火墙上已经开放了9000与9001的内网访问权限
其中MINIO_ROOT_USER与MINIO_ROOT_PASSWORD分别时MinIO后台访问的账号密码,请自行替换并妥善保管
环境变量MINIO_SERVER_URL的值会影响共享文件的链接地址,并且会参与签名计算
mkdir /miniodisk
docker run -p 9000:9000 -p 9001:9001 \
-d \
--name=minio-server \
--net=host \
-e "MINIO_ROOT_USER=minio_admin" \
-e "MINIO_ROOT_PASSWORD=minio_admin_password" \
-e "MINIO_SERVER_URL=https://api.minio.com" \
-v /miniodisk:/miniodisk \
minio/minio server \
http://minio1:9000/miniodisk \
http://minio2:9000/miniodisk \
http://minio3:9000/miniodisk \
http://minio4:9000/miniodisk \
--console-address ":9001"
此时,我们的MinIO集群已经搭建成功了
配置nginx
1、因为MinIO后台使用了WebSocket技术,需要在nginx上配置Host,Upgrade,Connection
请求头来支持WebSocket的转发,参见MinIO官方nginx示例与WebSocket proxying
2、在nginx上使用301强制将http请求重定向到https地址,保证访问的数据安全
3、修改client_max_body_size默认允许上传的文件大小限制,默认值是1M,如果上传大文件时会被阻止
4、将ssl_certificate和ssl_certificate_key指定为你自己的证书文件路径
以上操作需要修改/etc/nginx/nginx.conf文件,新增以下配置信息
http {
# 调大客户端请求体的大小限制,便于MinIO上传大文件
client_max_body_size 10M;
# websocket
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream minioapi {
server minio1:9000;
server minio2:9000;
server minio3:9000;
server minio4:9000;
}
upstream minioconsole {
server minio1:9001;
server minio2:9001;
server minio3:9001;
server minio4:9001;
}
server {
listen 80;
server_name console.minio.com api.minio.com;
access_log /var/log/nginx/http_access.log main;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name api.minio.com;
ssl_certificate "/etc/nginx/ssl_cert/api.minio.com.pem";
ssl_certificate_key "/etc/nginx/ssl_cert/api.minio.com.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/api_minio_com_access.log main;
location / {
proxy_set_header Host $http_host;
proxy_pass http://minioapi/;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name console.minio.com;
ssl_certificate "/etc/nginx/ssl_cert/console.minio.com.pem";
ssl_certificate_key "/etc/nginx/ssl_cert/console.minio.com.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/console_minio_com_access.log main;
location / {
proxy_pass http://minioconsole/;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
}
配置文件修改完毕之后,重启nginx,使配置生效
systemctl restart nginx
配置完成,确保nginxserver服务器开放了80与443端口外网访问权限,并且设置好了域名解析后,我们就可以通过https://console.minio.com访问MinIO后台了
使用Docker搭建MinIO集群服务的更多相关文章
- 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现
庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介 在第七篇文章<庐山真面目之七微服务架构Consul ...
- Docker 搭建 etcd 集群
阅读目录: 主机安装 集群搭建 API 操作 API 说明和 etcdctl 命令说明 etcd 是 CoreOS 团队发起的一个开源项目(Go 语言,其实很多这类项目都是 Go 语言实现的,只能说很 ...
- docker搭建etcd集群环境
其实关于集群网上说的方案已经很多了,尤其是官网,只是这里我个人只有一个虚拟机,在开发环境下建议用docker-compose来搭建etcd集群. 1.拉取etcd镜像 docker pull quay ...
- docker 搭建zookeeper集群和kafka集群
docker 搭建zookeeper集群 安装docker-compose容器编排工具 Compose介绍 Docker Compose 是 Docker 官方编排(Orchestration)项目之 ...
- 使用Docker搭建Spark集群(用于实现网站流量实时分析模块)
上一篇使用Docker搭建了Hadoop的完全分布式:使用Docker搭建Hadoop集群(伪分布式与完全分布式),本次记录搭建spark集群,使用两者同时来实现之前一直未完成的项目:网站日志流量分析 ...
- 使用Docker搭建Hadoop集群(伪分布式与完全分布式)
之前用虚拟机搭建Hadoop集群(包括伪分布式和完全分布式:Hadoop之伪分布式安装),但是这样太消耗资源了,自学了Docker也来操练一把,用Docker来构建Hadoop集群,这里搭建的Hado ...
- Docker搭建PXC集群
如何创建MySQL的PXC集群 下载PXC集群镜像文件 下载 docker pull percona/percona-xtradb-cluster 重命名 [root@hongshaorou ~]# ...
- Docker搭建RabbitMQ集群
Docker搭建RabbitMQ集群 Docker安装 见官网 RabbitMQ镜像下载及配置 见此博文 集群搭建 首先,我们需要启动运行RabbitMQ docker run -d --hostna ...
- Windows10 搭建 ElasticSearch 集群服务
一.前言 集群的搭建需要多台机器,之前我使用 ubuntu 16.04 搭建过 hadoop 的单机模式和分布式模式,这个今后会写,今天先写一篇使用 < Windows10 搭建 Elastic ...
- Elasticsearch使用系列-Docker搭建Elasticsearch集群
Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 Elasticsearch使用系列-基本查询和聚合查询+sql插件 Elas ...
随机推荐
- php处理mysql的结果集
Php使用mysqli_result类处理结果集有以下几种方法 fetch_all() 抓取所有的结果行并且以关联数据,数值索引数组,或者两者皆有的方式返回结果集. fetch_array() 以一个 ...
- 关于decimal与double数据类型
关于double和decimal类型, double类型能表示的精度不如decimal,但是其数据范围比decimal的大. 对于double类型的字段,用sum函数会出现多位小数的情况,比如a+b+ ...
- HTTP-看这一篇就够了
HTTP和HTTPS有什么区别 1.传输过程中信息是否加密,HTTP是超文本传输协议,信息是明文传输,HTTPS是具有安全性的SSL加密的超文本传输协议,信息是加密传输: 2.服务端使用的端口号不一致 ...
- fiddler 实现跨域
static function OnBeforeResponse(oSession: Session) { ... if(oSession.uriContains("要处理的url" ...
- 使用python的turtle库画一个冰墩墩
目录 先看效果图 设置一个画布 画左手和手内 画轮廓和其他部分 画细节(眼睛.鼻子.嘴巴等) 画头部彩虹 画五环标志 最后(别忘记还有一个结束) 先看效果图 设置一个画布 点击查看代码 import ...
- vue移动端登录与登录保持
成品效果 首先进入首页点击右下角个人中心,若状态为登录中则进入个人中心页面,否则进入登录页 实现步骤 首先完成静态的登录页与个人中心页面 登录页 <template> <div cl ...
- Java代码结构
Java代码结构 顺序结构 Java的基本结构为顺序结构,除非特别指明,否则从上到下一句一句执行 选择结构 if单选择结构 if(condition){ doSomething(); } if双选择结 ...
- SpringBoot多数据源yaml配置
1.配置多数据源 pom文件 <dependency> <groupId>com.baomidou</groupId> <artifactId>dyna ...
- CentOS DNS 安裝步驟
yum install bind bind-utils bind-devel bind-chroot [root@nw-centos-dns-01 ~]# rpm -qa | grep bind bi ...
- 新的世界,我们推荐不劳而获 -> 持续更新中
随着技术带来的生产力爆发越来越猛烈,有人提出是不是有必要保留一些落后的生产工艺及相关岗位,以避免社会动荡. 我的答案:不用.但是要改变社会对于不劳而获的态度:我们对于生活资料的不劳而获持接受的态度,但 ...