Centos7 搭建minio集群配合nginx做文件服务器

一、准备机器
1、准备四台机器,(minio集群最少四台) 。
192.168.223.132 minio-1192.168.223.133 minio-2192.168.223.134 minio-3192.168.223.135 minio-42、编辑hosts文件,将以上内容添加到hosts中
vim /etc/host

Centos7 搭建minio集群配合nginx做文件服务器

文章插图
 
部署(所有机器均执行)
以下的操作都需要在四台机器上执行
3、创建挂载磁盘路径
mkdir -p /data/minio_data/4、挂载磁盘路径到文件系统
注意:需要将新建的目录挂在到对应的磁盘下,磁盘不挂载好,集群启动会报错,还需要注意的是挂载的文件系统至少要1G不然无法初始化导致集群报错
文件系统 容量 已用 可用 已用% 挂载点
[root@minio-1 minio]# df -h文件系统容量已用可用 已用% 挂载点devtmpfs470M0470M0% /devtmpfs487M0487M0% /dev/shmtmpfs487M8.4M478M2% /runtmpfs487M0487M0% /sys/fs/cgroup/dev/mApper/centos_hadoop--master-root47G12G36G25% //dev/sda11014M240M775M24% /boottmpfs98M098M0% /run/user/0tmpfs98M12K98M1% /run/user/42————————————————5、将上面挂载磁盘路径挂载到相应的文件系统上
mount /dev/sda1 /data/minio_data/6、查看挂载信息
Centos7 搭建minio集群配合nginx做文件服务器

文章插图
 
7、创建minio目录
mkdir -p /opt/miniocd /opt/minio/8、下载安装包
wget http://dl.minio.org.cn/server/minio/release/linux-amd64/miniowget https://dl.min.io/client/mc/release/linux-amd64/9、赋执行权限(根据情况,这里赋全部权限)
chmod +x minio mc10、创建启动脚本,编辑run.sh文件
mkdir /opt/minio && cd /opt/minio内容如下:cat > run.sh <<EOF#!/bin/bashexport MINIO_ACCESS_KEY=minioexport MINIO_SECRET_KEY=Leo825#20210423/usr/local/bin/minio server --config-dir /etc/minio --address "0.0.0.0:9000" http://192.168.81.235/minio http://192.168.81.236/minio http://192.168.81.237/minio http://192.168.81.234/minioEOF11、赋执行权限(根据情况,这里赋全部权限)
chmod 777 /opt/minio/run.sh12、创建启动服务,创建minio.service启动脚本
vim /usr/lib/systemd/system/minio.service内容如下:[Unit]Description=Minio serviceDocumentation=https://docs.minio.io/[Service]#安装包路径WorkingDirectory=/opt/minio/#启动命令路径ExecStart=/opt/minio/run.shRestart=on-failureRestartSec=5[Install]WantedBy=multi-user.target13、启动测试(所有机器执行)
重新加载服务的配置文件systemctl daemon-reload启动minio服务systemctl start minio查看minio状态systemctl status minio[root@minio-2 ~]# systemctl status minio● minio.service - Minio serviceLoaded: loaded (/usr/lib/systemd/system/minio.service; disabled; vendor preset: disabled)Active: active (running) since 日 2021-01-31 17:22:54 CST; 17s agoDocs: https://docs.minio.io/Main PID: 2036 (run.sh)Tasks: 8CGroup: /system.slice/minio.service├─2036 /bin/bash /opt/minio/run.sh└─2039 /opt/minio/minio server http://192.168.223.232/data/minio_data/data1 http://192.168.223.233/data/minio_关闭minio服务systemctl stop minio14、访问地址
集群中的任何一台机器都可以访问:http://192.168.223.132:9000/http://192.168.223.133:9000/http://192.168.223.134:9000/http://192.168.223.135:9000/15、创建测试桶
Centos7 搭建minio集群配合nginx做文件服务器

文章插图
 
16、上传测试
Centos7 搭建minio集群配合nginx做文件服务器

文章插图
 
17、主机上可以查看到上传的文件
Centos7 搭建minio集群配合nginx做文件服务器

文章插图
 
二、Nginx配置文件服务器访问
1、执行命令
mcalias set minio http://192.168.223.132:9000/ minio Leo825#20210423 --api S3v4开启匿名访问mc policy set public minio/sy01 2、web页面开启匿名访问
Centos7 搭建minio集群配合nginx做文件服务器

文章插图
 

Centos7 搭建minio集群配合nginx做文件服务器

文章插图
 
 3、http访问,sy01是桶名称,方便浏览器访问 。
upstream minio-server{server 192.168.6.124:9000 weight=25 max_fails=2 fail_timeout=30s;server 192.168.6.125:9000 weight=25 max_fails=2 fail_timeout=30s;server 192.168.6.126:9000 weight=25 max_fails=2 fail_timeout=30s;server 192.168.6.128:9000 weight=25 max_fails=2 fail_timeout=30s;}server {listen 8888;server_name 192.168.6.120;#To allow special characters in headersignore_invalid_headers off;# Allow any size file to be uploaded.# Set to a value such as 1000m; to restrict file size to a specific valueclient_max_body_size 0;# To disable bufferingproxy_buffering off;location /sy01/ {proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header Host $http_host;proxy_connect_timeout 300;# Default is HTTP/1, keepalive is only enabled in HTTP/1.1proxy_http_version 1.1;proxy_set_header Connection "";chunked_transfer_encoding off;proxy_pass http://minio-server;}location / {proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header Host $http_host;proxy_connect_timeout 300;# Default is HTTP/1, keepalive is only enabled in HTTP/1.1proxy_http_version 1.1;proxy_set_header Connection "";chunked_transfer_encoding off;proxy_pass http://minio-server; # If you are using Docker-compose this would be the hostname i.e. minio# Health Check endpoint might go here. See https://www.nginx.com/resources/wiki/modules/healthcheck/# /minio/health/live;}}


推荐阅读