Bootstrap

Linux下安装Minio+利用nginx配置为https访问

一、安装

在需要存放的相应位置下创建minio目录并在minio中分别创建红框内的目录

进入刚刚创建的bin目录中

下载

wget https://dl.min.io/server/minio/release/linux-amd64/minio

给刚刚下载的文件添加执行权限

chmod +x minio

 启动脚本

在minio目录下创建startup.sh文件,具体创建方法随意,这里我采用Xftp图形化创建,接着将以下内容复制、粘贴、保存(注:按自己相应存放路径和需求更改)

#!/bin/bash

# 设置MinIO的配置参数
# 用户名
export MINIO_ROOT_USER=admin
# 密码
export MINIO_ROOT_PASSWORD=admin

# S3-API端口
export MINIO_ADDRESS=":8800" # 可按需修改

# Console控制台页面访问端口
export MINIO_CONSOLE_ADDRESS=":8801" # 可按需修改

# 设置MinIO安装路径
export MINIO_PATH_DIR="/usr/local/minio/bin"

# 设置MinIO配置文件路径
export MINIO_CONFIG_DIR="/usr/local/minio/config"

# 设置数据存储路径
export MINIO_DATA_DIR="/usr/local/minio/data"

# 设置日志存储路径
export MINIO_LOG_DIR="/usr/local/minio/log"

# 启动MinIO服务器
nohup $MINIO_PATH_DIR/minio server --address $MINIO_ADDRESS --console-address $MINIO_CONSOLE_ADDRESS --config-dir $MINIO_CONFIG_DIR $MINIO_DATA_DIR > $MINIO_LOG_DIR/minio.log 2>&1 &

# 输出启动信息
echo "MinIO started. Logs can be found at $MINIO_LOG_DIR/minio.log"

 给刚刚的startup.sh文件赋予可执行文件

chmod +x startup.sh

 关闭脚本

 在minio目录下创建shutdown.sh文件,和启动脚本一样的步骤,复制以下内容粘贴

#!/bin/bash

echo "shutdown minio"

pid=`ps -ef | grep 'minio server' | grep -v grep | awk '{print $2}'`

if [ -n "$pid" ]

then

kill -9 $pid

fi

echo "Success!"

给shutdown.sh文件赋予可执行权限

chmod +x shutdown.sh

 启动minio

./startup.sh

查看是否成功启动,启动成功会出现启动脚本定义的端口

ps anx | grep minio 

windows打开控制台,ip+端口号访问(http://ip:8801),输入账号密码登录

如遇到打不开需要检查一下防火墙是否已经放行对应端口

使用云服务器的安全组也需要放行对应端口

 新建一个桶(和创建文件目录一个意思)

这里新建了一个text的桶,即新建了一个名为text的目录,名字随意,接着Create Bucket

进入桶修改 Access Policy为pubilc,否则无法直接访问文件(按需设置)

上传文件

访问刚刚上传的文件

文件的访问地址的格式为http://{IP}:{S3-API端口}/{bucket}/{name};

如访问不成功注意是不是端口写错了,是 S3-API端口

http://ip:8800/text/1.png

踩坑日常:由于多个项目需要部署在同一台服务器,分别存放在不同的桶中,因此创建了新的桶,给予了public权限,但是项目更换桶名时上传图片报错 《创建Bucket失败,请核对配置信息:[Unable to execute HTTP request: Connect to127.0.0.1:9000》 排查一天也没解决,使用minio控制台上传和查看都没问题,服务器也重启minio,最终摆烂第二天自己就正常了,暂不清楚什么原因造成,但最后还是无法使用两个桶,也没找到好的教程。

二、升级为https

按照以上步骤已经可以使用http进行访问了,但是大部分网站使用https服务,浏览器加载不出来http图片,因此需要将minio升级为https访问,本文利用nginx来进行配置

在443端口处配置相关证书信息,具体操作本文暂不提供

接着将以下内容以下内容复制放到443端口块中

location / {
            proxy_pass http://127.0.0.1:8800;
            # 添加了websocket支持
            proxy_http_version      1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_next_upstream     http_500 http_502 http_503 http_504 error timeout invalid_header;
            proxy_set_header        Host  $http_host;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
         }

注意替换为自己的端口,重新加载nginx

systemctl reload nginx

由于本人能力有限,目前只能在根目录下才起效果,加了后缀就没法访问,比如 location /minio{},后续有想法再更改,我这里8800是 {S3-API端口} 上传数据的,至此利用java上传的图片url则以https开头

8801是我的minio控制台端口,替换端口重新加载nginx后就可https访问minio控制台

暂时先写到这吧!!!!!!!!!!!!!!!!!!!!!!!!

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;