5

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

 8 months ago
source link: https://bajie.dev/posts/20231228-minio_nginx/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

2023-12-28 2 分钟阅读

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

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

image-20231228140755759

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

image-20231228141032738

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

image-20231228141121489

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

这样就好了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK