首页 > 系统相关 >使用Nginx反向代理minio,提供文件公共访问

使用Nginx反向代理minio,提供文件公共访问

时间:2024-07-22 14:08:19浏览次数:7  
标签:AES256 minio SHA RSA Nginx AES128 反向 ECDHE

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。

在之前的一篇文章介绍了《使用Docker搭建minio对象存储与mc客户端常用命令》,这篇文章继续分享下如何将minio的存储桶设置为公有读、私有写,并且通过nginx反向代理实现文件公共访问。

注意:阅读此文章的用户需要一定Linux基础知识和阅读官网文档的习惯。

前提

已经搭建好minio服务,并且安装好了mc客户端,同时已将存储添加到mc客户端配置中。

设置minio存储桶为公有读、私有写

用过国内对象存储的同学可能知道服务商会提供一个存储桶设置公有读、私有写的功能,这个场景应用非常广泛,比如静态文件的分发访问。minio是一个兼容S3协议的存储,S3上似乎没有这个公有读、私有写的概念。S3上叫policy(管理访问策略)

如果需要将minio某个存储桶设置为公有读、私有写,只需要将policy策略设置为download即可,命令如下:

代码语言:javascript 复制
#设置minio的匿名访问策略,可选值有none, download, upload, public
mc policy set upload host/bucket/
#查看匿名策略
mc policy list host/bucket/
  • host:就是你在mc config host add时设置的名称
  • bucket:指存储桶的名称

设置完毕后,我们可以通过访问http://IP:9000/bucket/file_name来进行测试,如果不加任何参数,能直接访问到文件,说明设置已经生效。

通过Nginx反向代理进行访问

minio默认访问接口使用9000端口号,每次都带上端口访问显然不太方便,一般是结合nginx反向代理来访问。xiaoz写了一个nginx反向代理的配置,大家可以用作参考:

代码语言:javascript 复制
server {
    listen 443 ssl http2;
    #改成你自己的SSL证书路径
    ssl_certificate /path/domain.com.crt;
    ssl_certificate_key /path/domain.com.key;
    ssl_session_timeout 1d;
    #ssl_session_cache builtin:1000 shared:SSL:10m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
    ssl_prefer_server_ciphers on;

    ssl_stapling on;
    ssl_stapling_verify on;
    add_header Strict-Transport-Security max-age=15768000;
    proxy_buffering off;

    #domain.com改成你自己的域名
    server_name domain.com;
    #网站日志的路径,注意nginx用户需要可写,如果不需要可以注释掉
    access_log /data/wwwlogs/domain.com.log combined;

    charset utf-8,gbk;

    location / {
        #开启自定义错误页面
        proxy_intercept_errors on;
        proxy_connect_timeout 300;
        # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        chunked_transfer_encoding off;
        #bucket改成你自己的存储桶名称,注意:末尾需要带有一个/
        proxy_pass http://127.0.0.1:9000/bucket/;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #客户端缓存时间,这里设置为7天,根据自己的需要设置即可
        expires 7d;
        add_header XCDN-Cache "$upstream_cache_status";
        #可以在存储桶事先上传一个html文件或者图片,用作404页面,然后改成存储桶下面的绝对路径,以/开头,如果不需要,可以将其注释
        error_page 404 /404.png;
    }
}
server
{
    # 301重定向
    listen 80;
    server_name domain.com;
    rewrite ^(.*) https://domain.com$1 redirect;
}

设置完毕后通过nginx -t检查配置是否正确,并重载nginx配置nginx -s reload,然后通过你的域名http://domain.com/filename进行访问测试。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 如有侵权请联系 [email protected] 删除

标签:AES256,minio,SHA,RSA,Nginx,AES128,反向,ECDHE
From: https://www.cnblogs.com/gaoyanbing/p/18315876

相关文章

  • 使用NGINX + MINIO + IMAGEPROXY 搭建私有图床
    MinIO是一个基于ApacheLicensev2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。图床的基础是Minio,但minio并不提......
  • 使用nginx proxy_pass从s3存储桶中读取sitemap.xml文件
    使用nginxproxy_pass从s3存储桶中读取sitemap.xml文件 nginx是一款高性能的开源Web服务器软件,也可以作为反向代理服务器使用。proxy_pass是nginx的一个指令,用于将客户端的请求转发到其他服务器上。在使用nginx的proxy_pass指令从S3存储桶中读取sitemap.xml文件时,可以按......
  • Nginx 中如何实现请求的排队机制?
    Nginx中如何实现请求的排队机制?在当今数字化的时代,网站和应用的流量就如同潮水一般,时涨时落,时急时缓。想象一下,当流量如洪水猛兽般汹涌而来,服务器就像是那抗洪的堤坝,如果没有有效的管理和调度,很容易就会被冲垮。而Nginx就像是一位聪明的水利工程师,能够通过其强大的功能,......
  • Nginx 中怎样实现请求的断路机制?
    ......
  • Nginx 如何处理请求的限速?
    ......
  • CentOS 7.6安装nginx
    1、安装EPEL仓库[root@ecs-lanxinmeichennginx]#sudoyuminstallepel-releaseLoadedplugins:fastestmirror,versionlockLoadingmirrorspeedsfromcachedhostfile *epel:mirrors.aliyun.com *remi:mirrors.tuna.tsinghua.edu.cn *remi-safe:mirrors.tuna.tsi......
  • docker安装nginx
    下载镜像dockerpullnginx 启动nginx容器dockerrun--restart=always--name=nginx-p80:80-dnginx启动后访问一下试试: 宿主机创建挂载目录我们就在home文件夹下创建bianen/nginx:mkdir-p/home/bianen/nginx复制配置文件到宿主机的挂载目录dockercp......
  • FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
    《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”介绍了轻量级流媒体服务器MediaMTX,虽然MediaMTX使用很简单,可是不能满足复杂的业务需求,故而实际应用中需要引入专业的流媒体服务器。nginx-rtmp是开源WEB服务器Nginx可增强的第三方rtmp模块,该模块封装......
  • nginx日志切割定时任务
    目录nginx进行日志切割的好处:实现步骤:1.给access.log日志文件重命名,并备份2.编写定时日志脚本     3.运行日志切割脚本4.将日志切割脚本加入crontab定时任务crontab定时任务配置讲解nginx进行日志切割的好处:便于管理和查询:随着时间的推移,Nginx日志文......
  • nginx 部署vue http、https
    nignx配置文件server{listen80;server_nameyour_domain.com;return301https://$server_name$request_uri;}server{listen443ssl;server_nameyour_domain.com;ssl_certificate/path/to/your/ssl/certificate;ssl_certificate_k......