同事有个需求,想开放个域名,给别的同事们下载文件用。
这个其实很建单,问题就是文件怎么放上去,sftp、ftp什么的都需要搭个服务器,其实最简单应该是webdav,但是放公网又不太安全。
本来考虑是用 oss 的桶,前面直接套个CDN,但是如果桶文件泄露被疯狂下载,也会付出银两。
最后做法是用 Minio 弄一个模拟的桶环境,前面配置上 Nginx,带宽限制到1M,这样就无所谓了。同事用另一台机器模拟S3的API往上面放文件供下载。
一、minio的安装
下载二进制文件,简单粗暴启动:
#!/bin/bash
nohup /app/minio/minio server --address '0.0.0.0:9000' --console-address '0.0.0.0:9001' /app/bucket > /app/minio/minio.log 2>&1 &
这样就启动了,然后网页打开 http://10.10.247.211:9000 ,就可以看到登录界面了
登录后,我们先建立一个Bucket,就叫做pub桶,把pub桶的策略改成public,这样nginx代理的时候才能直接访问到

然后我们上传个图片,BOMS3.0.png,然后去/app/bucket目录下看看

结果发现BOMS3.0.png居然是个目录,进去继续看

meta信息和若干的part,看来这是为多版本准备的,这就是为什么要策略是public的原因,不是就无法从9000访问。
二、安装配置nginx
server {
listen 80;
listen [::]:80;
server_name supervisor-task.ddky.com;
location / {
return 301 https://supervisor-task.ddky.com$request_uri;
}
}
server {
listen 443 ssl;
server_name supervisor_task.ddky.com;
ssl_certificate /etc/nginx/cert/_.ddky.com.crt;
ssl_certificate_key /etc/nginx/cert/_.ddky.com.key;
ssl_session_timeout 5m;
location / {
rewrite ^/$ /pub/index.html break;
proxy_pass http://10.10.247.211:9000/pub/;
proxy_redirect off;
}
access_log /app/logs/access.log ;
error_log /app/logs/error.log;
}
主要就是要配置代理,代理到minio的9000端口
这样就好了。