配置Minio+nginx的代理来开放桶内内容

同事有个需求,想开放个域名,给别的同事们下载文件用。

这个其实很建单,问题就是文件怎么放上去,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代理的时候才能直接访问到

image-20231228140755759

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

image-20231228141032738

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

image-20231228141121489

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端口

这样就好了。


NFS的详细解释
出国旅行安装一个FreePBX的voip电话自用
comments powered by Disqus