前言
手里有一个闲置服务器,不能浪费,于是有想把它作为文件静态资源服务器的想法。
本来是想随便起一个 http 服务就可以作为静态资源服务来运行,比如apche、node的http-server、nginx等等。
但是我觉得这样传文件也不方便,还得通过 ssh 或者其它客户端来链接服务器上传,或者写一套 web 项目来做支持,又太麻烦。
网上搜罗一番,发现了这个 用 go 语言写的,号称相当不错的 个人 对象存储 系统 minio,捣鼓一番 所以有了这篇笔记!
它是支持 windows、mac、linux 的,本文以 linux搭建minio 为例!
下载
先下载刀服务器上
wget https://dl.min.io/server/minio/release/linux-amd64/minio
再去执行启动服务命令
./minio server /data --console-address :9001
# 参数解释
# /data 指定文件存放目录
# --console-address :9001 指定 webui 服务端口,如果不指定则每次运行会随机端口(执行运行 minio程序,它会启动两个不同端口的服务, 一个是 api、一个是 ui )
如果没有执行权限,请执行chmod +x minio
.
如果想后台运行,请在启动服务命令后加上 &
nginx代理
设置环境变量
在 如何 nginx 代理上,minio 其实稍显麻烦 😭。
(你不但需要在 nginx 上配置它,更)需要在minio启动之前, 定义好两个 环境变--->用来指定你要代理的域名,比如我这里
export MINIO_SERVER_URL=https://file.dingshaohua.com
export MINIO_BROWSER_REDIRECT_URL=https://file.dingshaohua.com/ui
# 解释
# 第一个是指定访问 minio 核心服务的 地址(既你要代理的地址)
# 第一个是指定访问 minio 后台管理 ui 的服务的 地址(既你要代理的地址)
然后再启动minio(minio会在启动的时候读取这两个环境变量 修改内部的代码 做出适配)!
nginx配置
网上有很多教程其实都是过时的,且不对的,我这里参考官方文档写了一份自用的
# file.dingshaohua.com # minio控制台
upstream minio_server {least_conn;server 103.110.80.247:9000;
}
upstream minio_ui {least_conn;server 103.110.80.247:9001;
}
server {listen 80;server_name file.dingshaohua.com;rewrite ^(.*) https://$server_name$1 permanent;
}
server {listen 443 ssl;server_name file.dingshaohua.com;ssl_certificate /etc/letsencrypt/live/dingshaohua.com/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/dingshaohua.com/privkey.pem;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;ignore_invalid_headers off;client_max_body_size 0;proxy_buffering off;proxy_request_buffering off;location / {proxy_set_header Host $http_host;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_connect_timeout 300;proxy_http_version 1.1;proxy_set_header Connection "";chunked_transfer_encoding off;proxy_pass http://minio_server;}location /ui/ {rewrite ^/ui/(.*) /$1 break;proxy_set_header Host $http_host;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 X-NginX-Proxy true;real_ip_header X-Real-IP;proxy_connect_timeout 300;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";chunked_transfer_encoding off;proxy_pass http://minio_ui;}
}
重启 ngixn 服务器后,访问我如上配置的 https://file.dingshaohua.com/ui(其实直接访问 https://file.dingshaohua.com 也会重定向到这里)即可访问minio