Centos7环境下搭建minio单机版加自启动步骤详细教程

MinIo简介
MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。
MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL
官网地址:https://min.io/
gitee资料:https://gitee.com/mirrors/minio
GitHub 仓库地址是:https://github.com/minio/minio

一、搭建MinIo
快速开始一个单节点的 MinIO
MinIO 分为服务端和客户端,服务端提供一个对象存储,也提供一个 Web 的管理页面。客户端是用来管理、查看服务端的一个工具。服务端的二进制文件是 minio ,客户端的二进制文件是 mc。

1. Linux服务器执行命令,查看当前系统

lsb_release -a

null

一、下载安装文件
1、在home目录下创建minio文件夹

mkdir /home/minio

2、进入/home/minio 文件夹

cd /home/minio

3、下载文件

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

笔者是基于Linux系统下centos7版本,各位博友可以自行根据自己的系统版本下载相应的minIo版本包

二、创建数据文件夹和日志文件夹

mkdir /home/minio/data
mkdir /home/minio/log

三、创建日志文件

touch /home/minio/log/minio.log

四、启动

# 赋予权限
chmod 777 minio
# 前台启动命令
./minio server /home/minio/data
# 后台启动命令
nohup ./minio server --console-address ":9001" --address ":9000" /home/minio/data > /home/minio/log/minio.log &

如果想要修改超管账户名和密码
1、打开 /etc/profile 文件

vi /etc/profile

2、在文件的最末尾加上以下信息(启动的时候看提示,新版本需要用MINIO_ROOT_USER和MINIO_ROOT_PASSWORD,旧版需要用MINIO_ACCESS_KEY和MINIO_SECRET_KEY)。

按 i 键后,在文档末尾输入

(1)新版:

export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=admin@123456

(2)旧版

export MINIO_ACCESS_KEY=minioadmin
export MINIO_SECRET_KEY=admin@123456

null

3、保存退出
(1)编辑完成后,按ctrl+c键结束编辑
(2)输入:wq保存退出
4、然后 刷新,重载环境变量

source /etc/profile

五、如果想要后台关闭程序
1、通过命令查看端口

ps -aux | grep minio

null

2、kill掉

kill -9 29590

重点来了,设置nginx反向代理
六、添加控制台域名和OSS域名
编辑/etc/profile

vi /etc/profile

输入以下内容:

export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=admin@123456
export MINIO_BROWSER_REDIRECT_URL=https://console.dd.ci
export MINIO_SERVER_URL=https://oss.dd.ci

修改/etc/hosts

vi /etc/hosts

添加下面的内容:

127.0.0.1 console.dd.ci
127.0.0.1 oss.dd.ci

添加证书
进入以下文件夹

cd /root/.minio/certs

创建你的域名对应的文件夹

mkdir oss.dd.ci
mkdir console.dd.ci

进入相应的文件夹添加对应证书和密钥

cd oss.dd.ci
public.crt
private.key
cd console.dd.ci
public.crt
private.key

配置控制台域名反向代码:

server
    {
        listen 80;
        #listen [::]:80;
        server_name console.dd.ci ;
        #index index.html index.htm index.php default.html default.htm default.php;
        #root  /home/wwwroot/console.dd.ci;

        include rewrite/none.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

		 #必须 防止请求头丢失
		underscores_in_headers on;
	
		location / {
            proxy_pass http://127.0.0.1:9001/;
			
			# 添加了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;
        }

        access_log  /home/wwwlogs/console.dd.ci.log;
    }

server
    {
        listen 443 ssl http2;
        #listen [::]:443 ssl http2;
        server_name console.dd.ci ;
        #index index.html index.htm index.php default.html default.htm default.php;
        #root  /home/wwwroot/console.dd.ci;

        ssl_certificate /usr/local/nginx/conf/ssl/*.dd.ci/ssl.cer;
        ssl_certificate_key /usr/local/nginx/conf/ssl/*.dd.ci/ssl.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        ssl_session_cache builtin:1000 shared:SSL:10m;
        # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
        ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;

        include rewrite/none.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

		 #必须 防止请求头丢失
		underscores_in_headers on;
	
		location / {
            proxy_pass http://127.0.0.1:9001/;
			
			# 添加了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;
        }
		
        access_log  /home/wwwlogs/console.dd.ci.log;
    }

配置oss.dd.ci反向代理:

server
    {
        listen 80;
        #listen [::]:80;
        server_name oss.dd.ci ;
        #index index.html index.htm index.php default.html default.htm default.php;
        #root  /home/wwwroot/oss.dd.ci;

        include rewrite/none.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
       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_http_version 1.1;
           proxy_connect_timeout  300;
           proxy_set_header Connection "";
           proxy_pass http://127.0.0.1:9000;
       }

        access_log  /home/wwwlogs/oss.dd.ci.log;
    }

server
    {
        listen 443 ssl http2;
        #listen [::]:443 ssl http2;
        server_name oss.dd.ci ;
        #index index.html index.htm index.php default.html default.htm default.php;
        #root  /home/wwwroot/oss.dd.ci;

        ssl_certificate /usr/local/nginx/conf/ssl/*.dd.ci/ssl.cer;
        ssl_certificate_key /usr/local/nginx/conf/ssl/*.dd.ci/ssl.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        ssl_session_cache builtin:1000 shared:SSL:10m;
        # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
        ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;

        include rewrite/none.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

       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_http_version 1.1;
           proxy_connect_timeout  300;
           proxy_set_header Connection "";
           proxy_pass http://127.0.0.1:9000;
       }

        access_log  /home/wwwlogs/oss.dd.ci.log;
    }

七、设置开机启动
1.创建minio.service文件
进入该目录下cd /etc/systemd/system/ 创建minio.service文件

cd /etc/systemd/system/
touch minio.service

2.配置启动内容脚本

#编辑命令
vim minio.service
[Unit]
Description=Minio Service

[Service]
User=root
Group=root
WorkingDirectory=/home/minio
Environment="MINIO_ROOT_USER=minioadmin"
Environment="MINIO_ROOT_PASSWORD=admin@123456"
Environment="MINIO_BROWSER_REDIRECT_URL=https://console.dd.ci"
Environment="MINIO_SERVER_URL=https://oss.dd.ci"
ExecStart=/home/minio/minio server /home/minio/data --console-address ":9001" --address ":9000"
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
StandardOutput=/home/minio/log/minio.log
PrivateTmp=true

[Install]
WantedBy=multi-user.target

3、重启minio服务

systemctl restart minio.service
systemctl status minio.service

null

4、设置开机启动

systemctl enable minio.service

看到active ,控制台和api地址也为https ,就成功了,登录minio控制台:https://console.dd.ci

5、用前面设置的管理员账户密码登录
null

6.页面操作
页面进行添加bucket桶
null
null

7、设置存储桶策略
null

8、设置存储桶区域
null

8、创建Access Keys
null

9、选择新创建的bucket 进行上传文件
null

10、查看分享地址
null

八、对接兰空图床
1、首先修改代码
lsky-pro/app/Services/ImageService.php

大概356行, 'bucket_endpoint' => (bool)$configs->get(MinioOption::BucketEndpoint), 

这一行下面加一行配置解决:

// ...
'use_path_style_endpoint' => true,
// ...

参数解释:
是否使用路径样式(Path-Style)

虚拟主机样式(Virtual Hosted-Style)URL:这是默认的 URL 样式,它基于存储桶和对象的 DNS 名称。例如 https://bucket-name.s3.amazonaws.com/object-key
路径样式(Path-Style)URL:这种 URL 样式在主机名后使用存储桶名称作为路径的一部分。例如 https://s3.amazonaws.com/bucket-name/object-key
true 则表示使用路径样式(Path-Style),默认为 false

2、后台配置参数设置
null

完结,撒花!

参考资料:
https://blog.csdn.net/qq_45374325/article/details/129350475
https://blog.csdn.net/qq_27399407/article/details/121361894
https://blog.csdn.net/abc_cml/article/details/127634593
https://blog.csdn.net/u010293698/article/details/128922506
https://blog.csdn.net/Utopia_Zq/article/details/125726603
https://blog.csdn.net/weixin_51578439/article/details/128976445

点赞