1

前言

之前使用七牛云的对象存储服务,每月有固定的流量价格也便宜,加之有开源的上传工具(如:PicGo)。在Windows上的操作十分便捷,日常写博客所需的图片拖拽上传即可。在前一阵子逛掘金的时候发现了MinIo,虽说部署之后在访问速度上没有优势,但好歹也是免费,拿来把玩一番。

部署

官方文档中说明了在常见平台的安装方法,例如:docker、Windows、MacOS和Linux。这里我会安装在自己的Linux服务器上,发行版为CentOS 7.4 64bit with ARM。虽说MinIO可以集群部署,但自己日常不会存放机密性文件在里面,就使用单节点即可。

  1. 下载MinIO

MinIO不仅提供了中文文档,还提供了镜像下载站,再也不用等着了。

点击server->minio->release,在页面中选择对于平台即可下载,由于我使用的华为ARM架构的服务器,点击linux-arm64,选择minio并服务文件URL,在服务器上使用wget命令下载即可。(是40M的那个哦!)

  1. 安装


赋予minio执行权限,

chmod +x minio
  1. 启动
    执行./minio可以查看帮助,执行./minio server服务即可通过9000端口进行访问,但这种方式在Ctrl+C之后就会停止,且没有设置用户名和密码,不方便也不安全。可以通过脚本启动,脚本如下所示
#!/usr/bin/env bash
# author: 582895699@qq.com
export MINIO_ACCESS_KEY=user_name
export MINIO_SECRET_KEY=1234567
nohup /mnt/oss/minio server /data/minio/data{1...64} > /mnt/oss/minio_start.log 2>&1 &
echo 'finished'
  • export MINIO_ACCESS_KEY=user_name:设置用户名
  • export MINIO_SECRET_KEY=1234567: 设置密码
  • nohup /mnt/oss/minio server /data/minio/data{1...64} > /mnt/oss/minio_start.log 2>&1 &: 后台启动MinIo服务,将启动日志输出到/mnt/oss/minio_start.log且以64个本地节点启动MinIO单节点

到此,MinIo已经启动,接下来打开端口就可以通过公网访问。

HTTPS安全访问

虽然在官方文档中说明了如何使用HTTPS,个人认为通过Nginx更灵活,且后期调整也比较方便。

首先确定服务器正确安装了Nginx和SSL模块
  1. 申请SSL证书
    首先在DNS解析处设置一个二级域名(当然一级域名也可以),例如:http://oss/haicheng.website,对应MinIo服务。点击下载并将文件解压,得到两个文件并将其复制到/usr/local/nginx/conf/cert/oss目录里面(可以随意指定文件存储位置)

  2. 修改nginx.conf

    这里需要修改两个大模块http和https,https为主通过443端口暴露,http模块负责将http请求转为https,配置如下所示:

worker_processes  1;
events {
    worker_connections  1024;
}

http {
    server_names_hash_bucket_size 64;
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    
    keepalive_timeout  65;

    gzip  on;

    server {
        listen       80;
        server_name  二级域名;
        rewrite ^(.*) https://$server_name$1 permanent;

        charset utf-8;
    }


    # HTTPS server
    server {
        listen       443 ssl;
        server_name  oss.haicheng.website;

        ssl_certificate      cert/oss/4464393_oss.haicheng.website.pem;
        ssl_certificate_key  cert/oss/4464393_oss.haicheng.website.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            # 转发规则
             proxy_pass  http://127.0.0.1:9000;
             proxy_set_header Host $proxy_host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              client_max_body_size 100M;
        }
    }

}

client_max_body_size这个配置一定需要加,虽然MinIo已有对上传文件的大小限制,但Nginx也需要配置文件上传大小。

总结

至此MinIo的部署及HTTPS配置以及完成,通过二级域名即可操作MinIo的操作界面,完成文件上传和分享。也可通过MinIo对应的SDK完成文件的上传,这款内容后面再补充吧!


原文地址:https://www.haicheng.website/...


MakeFunny
16 声望4 粉丝

记录我的代码历程