标签 minio 下的文章

前言:在使用宝塔面板配置Minio的API接口时,可能会遇到一些反向代理的bug。例如,如果直接建站,然后配置ssl和反向代理,虽然可以进入minio网页端,但是在配置s3时候是无法连接的的。为了确保API接口能够正常运行,我们需要手动创建一个配置文件。本文将介绍如何在宝塔面板上为Minio配置反向代理,并提供一个示例配置文件。

  • 步骤一:创建配置文件

首先,我们需要在宝塔面板的Nginx配置目录中创建一个新的配置文件。在本文中,我们将创建一个名为minio_proxy.conf的文件。

cd /www/server/panel/vhost/nginx
nano minio_proxy.conf
  • 步骤二:配置反向代理

在配置文件中,我们将设置两个server块,一个用于标准的Minio服务,另一个用于Minio的API接口。以下是示例配置文件内容:

server {
    listen       80;
    listen  [::]:80;
    server_name oss.example.com;
    listen 443 ssl;
    charset utf-8;
    ssl_certificate /www/server/panel/vhost/nginx/frpssl/oss.example.com.pem;
    ssl_certificate_key /www/server/panel/vhost/nginx/frpssl/oss.example.com.key;
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    location / {
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:9001;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }
}

server {
    listen       80;
    listen  [::]:80;
    server_name api.oss.example.com;
    listen 443 ssl;
    charset utf-8;
    ssl_certificate /www/server/panel/vhost/nginx/frpssl/api.oss.example.com.pem;
    ssl_certificate_key /www/server/panel/vhost/nginx/frpssl/api.oss.example.com.key;
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    location / {
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:9000;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }
}


在上述配置中,我们使用了两个域名oss.example.com和api.oss.example.com分别对应Minio的服务和API接口。同时,我们设置了SSL证书路径以及反向代理的目标地址。

  • 步骤三:修改域名

根据实际情况,将示例中的域名oss.example.com和api.oss.example.com替换为你的实际域名。例如,如果你的域名是oss.mydomain.com和api.oss.mydomain.com,则需要相应地进行替换。

  • 步骤四:重启Nginx服务

完成配置文件的修改后,保存并退出编辑器。然后,重启Nginx服务使配置生效。

service nginx restart
  • 结论

通过以上步骤,我们成功在宝塔面板上配置了Minio的反向代理。该配置确保了Minio服务和API接口能够正常工作,同时提供了SSL支持。如果在配置过程中遇到问题,请检查配置文件的路径和域名是否正确,确保Minio服务在本地相应端口上运行。

前言:在云服务器的不稳定情况下,备份是确保数据安全的关键。为了避免突发崩溃导致数据丢失,建立备份习惯至关重要。下面是如何设置备份网站目录和数据库的步骤:

  1. 备份网站目录

通过定期备份网站目录,你可以在服务器崩溃时保留网站数据。首先,进入宝塔的计划任务,选择shell脚本,并创建一个名为“minio备份网站”的任务。设定定时任务每天0点执行一次。

MINIO_ACCESS_KEY="" # MinIO的访问密钥
MINIO_SECRET_KEY="" # MinIO的私密密钥
MINIO_ENDPOINT=""   # MinIO的端点
MINIO_BUCKET="web" # MinIO的储存桶名

SOURCE_DIRECTORY="/www/wwwroot/backup_directory"  # 网站备份目录

TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")

BACKUP_FILE="/tmp/backup_web_$TIMESTAMP.tar.gz"

echo "正在创建 $SOURCE_DIRECTORY 的tar归档文件..."

tar -czf "$BACKUP_FILE" -C "$(dirname "$SOURCE_DIRECTORY")" "$(basename "$SOURCE_DIRECTORY")"

echo "正在上传备份文件至 MinIO 存储桶..."

mc alias set minio "$MINIO_ENDPOINT" "$MINIO_ACCESS_KEY" "$MINIO_SECRET_KEY" --api S3v4

mc cp "$BACKUP_FILE" "minio/$MINIO_BUCKET/backup_website_web/" 

echo "清理中..."

rm "$BACKUP_FILE" 

echo "备份成功。"

确保修改以上脚本中的参数以适应你的环境,如MinIO的访问密钥、私密密钥、端点和储存桶名等。

  1. 备份数据库

宝塔自带了数据库的备份功能,你可以设置每天0点定时备份数据库,并保留一份数据。此外,然后通过以下脚本创建一个上传数据库备份至MinIO的任务,定时每天2点执行一次:

MINIO_ACCESS_KEY="" # MinIO的访问密钥
MINIO_SECRET_KEY="" # MinIO的私密密钥
MINIO_ENDPOINT=""   # MinIO的端点
MINIO_BUCKET="web" # MinIO的储存桶名

SOURCE_DIRECTORY="/www/backup/database/mysql/crontab_backup/database_name"  

TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")

BACKUP_FILE="/tmp/backup_sql_$TIMESTAMP.tar.gz"

echo "Creating tar archive of $SOURCE_DIRECTORY..."

tar -czf "$BACKUP_FILE" -C "$(dirname "$SOURCE_DIRECTORY")" "$(basename "$SOURCE_DIRECTORY")"

echo "Uploading backup file to MinIO bucket..."

mc alias set minio "$MINIO_ENDPOINT" "$MINIO_ACCESS_KEY" "$MINIO_SECRET_KEY" --api S3v4

mc cp "$BACKUP_FILE" "minio/$MINIO_BUCKET/backup_database_sql/"

echo "Cleaning up..."

rm "$BACKUP_FILE" 

echo "Backup completed successfully."
  1. 安装MinIO mc

为了使用MinIO mc工具,你需要先安装它。以下是安装MinIO mc的步骤:

# 下载mc
wget https://dl.minio.org.cn/client/mc/release/linux-amd64/mc
# 赋予执行权限
chmod +x ./mc
# 移动到全局
cp ./mc  /usr/local/bin/

安装完成后,输入 mc -help 来验证是否安装成功。

以上脚本针对单个网站或数据库,如果需要备份全部网站或数据库,只需调整目录即可。如果需要按需备份,需要自行修改脚本。

1.minio

minio是一种高性能、S3 兼容的对象存储。它专为大规模 AI/ML、数据湖和数据库工作负载而构建,并且它是由软件定义的存储。

2.docker安装minio

  • 第一步拉库
docker pull minio/minio
  • 第二步创建上传资源的储存路径
mkdir -p /opt/minio/config
mkdir -p /opt/minio/data

  • 第三步创建容器
docker run \
-p 9000:9000 \
-p 9001:9001 \
--net=bridge \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=admin" \
-e "MINIO_SECRET_KEY=admin123456" \
-v /opt/minio/data:/data \
-v /opt/minio/config:/root/.minio \
 minio/minio server \
/data --console-address ":9001" -address ":9000"

  • 登录配置

登录后找到左边菜单栏的Bucket,点击后会出现Create Bucket,即创建储存桶。例如创建桶名:laziness,然后点击创建。
请输入图片描述

  • 创建密钥

点击左边菜单栏的Access Keys,然后右边出现Create access key,点击进去。请记住两个key,点击创建。
请输入图片描述

  • 进入点后台安装Media Cloud插件。
  • 配置Media Cloud

启用插件后,点开插件找到Setup Wizard。进去后点击next,选择红色的minio,点击next。
请输入图片描述

  • 启用Enable Cloud Storage
  • 完成