最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

每日精选:使用Docker搭建MinIO集群服务

来源:博客园

概述

因为在云服务器上默认只有一块磁盘,如果直接在系统盘上安装MinIO,会被拒绝,所以这里采用Docker的方式绕过这一限制

操作环境

操作系统

CentOS 7.9


(资料图片)

服务器host信息

192.168.10.1 minio1192.168.10.2 minio2192.168.10.3 minio3192.168.10.4 minio4192.168.10.5 nginxserver

域名信息

注意:以下为假定的域名配置,实际部署时替换为自己的真实域名,并提供有效的证书信息

MinIO后台域名:console.minio.com

MinIO接口服务域名:api.minio.com

前提条件

首先要确保每台minio服务器上已经安装好了Docker组件,参见在CentOS中安装Docker

并且确保在nginxserver主机上安装了nginx,参见在CentOS中安装和使用nginx

安装

在每台机器上执行以下命令

注意:确保各个minio服务器之间的防火墙上已经开放了90009001的内网访问权限

其中MINIO_ROOT_USERMINIO_ROOT_PASSWORD分别时MinIO后台访问的账号密码,请自行替换并妥善保管

mkdir /miniodiskdocker 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 "CONSOLE_MINIO_SERVER=https://console.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上配置HostUpgradeConnection请求头来支持WebSocket的转发,参见MinIO官方nginx示例与WebSocket proxying

2、在nginx上使用301强制将http请求重定向到https地址,保证访问的数据安全

3、修改client_max_body_size默认允许上传的文件大小限制,默认值是1M,如果上传大文件时会被阻止

4、将ssl_certificatessl_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服务器开放了80443端口外网访问权限,并且设置好了域名解析后,我们就可以通过https://console.minio.com访问MinIO后台了

关键词: