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
一、下载安装文件
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
3、保存退出
(1)编辑完成后,按ctrl+c键结束编辑
(2)输入:wq保存退出
4、然后 刷新,重载环境变量
source /etc/profile
五、如果想要后台关闭程序
1、通过命令查看端口
ps -aux | grep minio
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
4、设置开机启动
systemctl enable minio.service
看到active ,控制台和api地址也为https ,就成功了,登录minio控制台:https://console.dd.ci
5、用前面设置的管理员账户密码登录
6.页面操作
页面进行添加bucket桶
7、设置存储桶策略
8、设置存储桶区域
8、创建Access Keys
9、选择新创建的bucket 进行上传文件
10、查看分享地址
八、对接兰空图床
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、后台配置参数设置
完结,撒花!
参考资料:
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