同事有个需求,想开放个域名,给别的同事们下载文件用。
这个其实很建单,问题就是文件怎么放上去,sftp、ftp什么的都需要搭个服务器,其实最简单应该是webdav,但是放公网又不太安全。
本来考虑是用 oss 的桶,前面直接套个CDN,但是如果桶文件泄露被疯狂下载,也会付出银两。
最后做法是用 Minio 弄一个模拟的桶环境,前面配置上 Nginx,带宽限制到1M,这样就无所谓了。同事用另一台机器模拟S3的API往上面放文件供下载。
一、minio的安装
下载二进制文件,简单粗暴启动:
1#!/bin/bash
2nohup /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
1server {
2 listen 80;
3 listen [::]:80;
4 server_name supervisor-task.ddky.com;
5
6 location / {
7 return 301 https://supervisor-task.ddky.com$request_uri;
8 }
9}
10
11server {
12 listen 443 ssl;
13 server_name supervisor_task.ddky.com;
14
15 ssl_certificate /etc/nginx/cert/_.ddky.com.crt;
16 ssl_certificate_key /etc/nginx/cert/_.ddky.com.key;
17 ssl_session_timeout 5m;
18
19 location / {
20 rewrite ^/$ /pub/index.html break;
21 proxy_pass http://10.10.247.211:9000/pub/;
22 proxy_redirect off;
23 }
24
25 access_log /app/logs/access.log ;
26 error_log /app/logs/error.log;
27
28}
主要就是要配置代理,代理到minio的9000端口
这样就好了。