概述

因为在云服务器上默认只有一块磁盘,如果直接在系统盘上安装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集群服务的更多相关文章

  1. 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现

    庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介      在第七篇文章<庐山真面目之七微服务架构Consul ...

  2. Docker 搭建 etcd 集群

    阅读目录: 主机安装 集群搭建 API 操作 API 说明和 etcdctl 命令说明 etcd 是 CoreOS 团队发起的一个开源项目(Go 语言,其实很多这类项目都是 Go 语言实现的,只能说很 ...

  3. docker搭建etcd集群环境

    其实关于集群网上说的方案已经很多了,尤其是官网,只是这里我个人只有一个虚拟机,在开发环境下建议用docker-compose来搭建etcd集群. 1.拉取etcd镜像 docker pull quay ...

  4. docker 搭建zookeeper集群和kafka集群

    docker 搭建zookeeper集群 安装docker-compose容器编排工具 Compose介绍 Docker Compose 是 Docker 官方编排(Orchestration)项目之 ...

  5. 使用Docker搭建Spark集群(用于实现网站流量实时分析模块)

    上一篇使用Docker搭建了Hadoop的完全分布式:使用Docker搭建Hadoop集群(伪分布式与完全分布式),本次记录搭建spark集群,使用两者同时来实现之前一直未完成的项目:网站日志流量分析 ...

  6. 使用Docker搭建Hadoop集群(伪分布式与完全分布式)

    之前用虚拟机搭建Hadoop集群(包括伪分布式和完全分布式:Hadoop之伪分布式安装),但是这样太消耗资源了,自学了Docker也来操练一把,用Docker来构建Hadoop集群,这里搭建的Hado ...

  7. Docker搭建PXC集群

    如何创建MySQL的PXC集群 下载PXC集群镜像文件 下载 docker pull percona/percona-xtradb-cluster 重命名 [root@hongshaorou ~]# ...

  8. Docker搭建RabbitMQ集群

    Docker搭建RabbitMQ集群 Docker安装 见官网 RabbitMQ镜像下载及配置 见此博文 集群搭建 首先,我们需要启动运行RabbitMQ docker run -d --hostna ...

  9. Windows10 搭建 ElasticSearch 集群服务

    一.前言 集群的搭建需要多台机器,之前我使用 ubuntu 16.04 搭建过 hadoop 的单机模式和分布式模式,这个今后会写,今天先写一篇使用 < Windows10 搭建 Elastic ...

  10. Elasticsearch使用系列-Docker搭建Elasticsearch集群

    Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 Elasticsearch使用系列-基本查询和聚合查询+sql插件 Elas ...

随机推荐

  1. Linux下查看服务器PCIE Slot槽位信息

    在linux系统下,可以使用"dmidecode –t 9"或者"dmidecode –t slot"命令查看PCIE Slot的信息,如下图所示RH2288H ...

  2. js模块化 CommonJS和AMD/CMD ES6模块化

    ES6之前已经出现了js模块方案,有CommonJS和AMD规范.commonjs实现同步加载应用于服务器,如nodejs.AMD为异步加载应用于浏览器,如requirejs. ES6在语言层面上模块 ...

  3. 通过cmd对数据库SQL进行创建表空间并创建用户

    通过cmd对数据库SQL进行创建表空间并创建用户 1.创建表空间:create tablespace stx(名字) datafile ' 目录路径\stx(名字).dbf ' size 64m; 2 ...

  4. (论文笔记)Learning Deep Structured Semantic Models for Web Search using Clickthrough Data

    利用点击数据学习web搜索的深度学习模型   [总结] 该模型可以得到query和item的低维度向量表示,也可以得到二者的余弦语义相似度. 学习过程是通过最大化后验概率的极大似然估计得到的参数.   ...

  5. 打包pom文件

    <?xml version="1.0"?><project xsi:schemaLocation="http://maven.apache.org/PO ...

  6. deepin 调整微信、百度网盘、迅雷等等软件字体的方法

    一.修改微信字体大小方法: 1.方法一:修改deepinwine桌面环境字体 env WINEPREFIX="$HOME/.deepinwine/Deepin-WeChat" wi ...

  7. 【转载】matlab常用函数

    第一篇:Matlab软件函数 一.软件操作函数 1)命令窗口函数: clc:清空命令窗口,使用向上箭头翻看命令. open:打开文件,文本文件(*.doc),可执行文件(*.exe),图形文件(*.f ...

  8. PVE联网及更换国内源

    一.PVE联网 第一次安装PVE,正常情况下PVE的IP是在我们上网的网段的.没有网络有可能是没有配置DNS服务器地址或DNS地址是软路由网关地址.解决方法有3种: 1:设置DHCP自动获取网络地址和 ...

  9. 【SQL】数据库日志文件过大 4条命令删除日志

    USE DATATABLE GO ALTER DATABASE DATATABLE SET RECOVERY SIMPLE DBCC SHRINKFILE (DATATABLE_Log, 1) ALT ...

  10. mysql主从同步复制

    主从同步原理 master记录数据操作 开启binlog日志 设置binlog日志格式 指定server_id slave启用俩个线程 slave_io:复制master主机binlog日志为文件里的 ...