前言
之前使用七牛云的对象存储服务,每月有固定的流量价格也便宜,加之有开源的上传工具(如:PicGo)。在Windows上的操作十分便捷,日常写博客所需的图片拖拽上传即可。在前一阵子逛掘金的时候发现了MinIo,虽说部署之后在访问速度上没有优势,但好歹也是免费,拿来把玩一番。
部署
官方文档中说明了在常见平台的安装方法,例如:docker、Windows、MacOS和Linux。这里我会安装在自己的Linux服务器上,发行版为CentOS 7.4 64bit with ARM。虽说MinIO可以集群部署,但自己日常不会存放机密性文件在里面,就使用单节点即可。
- 下载MinIO
MinIO不仅提供了中文文档,还提供了镜像下载站,再也不用等着了。
点击server->minio->release,在页面中选择对于平台即可下载,由于我使用的华为ARM架构的服务器,点击linux-arm64,选择minio并服务文件URL,在服务器上使用wget命令下载即可。(是40M的那个哦!)
- 安装
赋予minio
执行权限,
chmod +x minio
- 启动
执行./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模块
- 申请SSL证书
首先在DNS解析处设置一个二级域名(当然一级域名也可以),例如:http://oss/haicheng.website,对应MinIo服务。点击下载并将文件解压,得到两个文件并将其复制到/usr/local/nginx/conf/cert/oss
目录里面(可以随意指定文件存储位置) - 修改
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完成文件的上传,这款内容后面再补充吧!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。