华人澳洲中文论坛

热图推荐

    minio集群将所有拜候都交给nginx

    [复制链接]

    2022-9-5 06:46:39 56 0

    问题
    个别在正式的环境下,经过给域名添加子门路(如oss)用于下载文件办事器上的文件。但这类设置子门路的形式不克不及间接经过API上传文件,创立桶等,鉴于平安,也不克不及让这类子门路具有创立、删除文件的权限。所以,个别状况下,后盾仍是经过拜候多个minio端口9000完成文件的操作,乃至有时,还需求在本人的代码中写一套负载平衡的逻辑(以前我的代码中就是这样完成的)。其实彻底能够基于nginx间接袒露9001,9000, 同时再给web经过/oss/xx的方式拜候的才能。
    构造设计
    完成API负载平衡,并能够间接经过nginx:9000商品操作文件办事器。完成经过/oss/xx仅阅读某个指定的文件办事器上文件(必需是残缺目录)。图片办事器高牢靠。本次搭建使用bitnami/minio镜像,此镜像为民间认证的镜像,便利使用、集群便利,独一就是不克不及经过传递--address,--console-address修正端标语,此镜像固定API端口为9000,console端口为9001。好在,假如使用非host模式,能够此端标语映照成你想要的便可。


    本次环境在一台主机上搭建:
    主机
    软件
    网卡
    端口
    192.168.56.61
    bitnami/minio:2022.9.1
    mybridge
    不合错误外袒露
    bitnami/minio:2022.9.1
    mybridge
    不合错误外袒露
    bitnami/minio:2022.9.1
    mybridge
    不合错误外袒露
    bitnami/minio:2022.9.1
    mybridge
    不合错误外袒露
    nginx:1.23.1
    mybridge
    80,9000,9001
    目录构造
    在恣意目录下,创立data{1..4}目录,用于保留minio的数据。创立nginx用于添加nginx的配置文件。在nginx1.19版本当前,能够经过映照 /etc/nginx/templats文件,将此目录下的xxx.conf.template文件自动的保留到nginx的配置文件下/etc/nginx/conf.d/,nginx将 templates下的 *.conf.template文件保留到/etc/nginx/conf.d/目录下当前,会删除.template扩展名。
    目录截图:


    配置文件docker-compose.yml
    此配置文件,用于办理4个minio容器和一个nginx容器。因为bitnami/minio在创立时,会自动创立mc client,这会影响创立的速度,咱们能够经过MINIO_SKIP_client将它封闭。封闭后,假如需求使用此功用,能够进入容器自行设置。




    配置文件default.conf.template
    此配置文件为oss映照配置文件,配置后,web能够经过http:///oss//1.png间接拜候到到图片,但不克不及操作minio的文件零碎,如上传、创立桶等。


    配置文件minio_api.conf.template
    此配置文件用于nginx暗射9000端口,完成间接经过此端口创立桶、上传等,也用于其余client接口。


    配置文件minio_console.conf.template
    此配置文件,用于暗射9001端口,完成console ui的相干操作。


    启动一切容器
    # docker compose up -d
    启动过程当中,能够经过log查看启动日志,如泛起下列信息,即表现启动胜利,留意最初的 4 online表现4台主机都曾经上线并能够使用了。


    经过下列启动的容器能够看出,仅nginx对外暗射了端口,minio一切端口仅对nginx凋谢。


    可选的,进入恣意一台容器,查看集群形态


    拜候ui
    因为只凋谢了nginx9000端口,而此端口前面,负载平衡了minio{1...4}:9000端口,所以,拜候时,假如有宕机的minio也不影响操作,登录之后,能够查看到minio集群的运转形态。
    http://192.168.56.61:9001


    创立一个桶,并设置拜候权限


    宕机测试
    当初让其中一台minio办事器下线,并持续在console ui上操作,创立桶、上传或下载文件,均可以正常操作。


    下线某个minio后查看ui中的offline下线曾经为1 servers ,1 drivers。


    测试实现后,再从新启动
    docker compose start minio1
    oss拜候测试(经过)


    域名拜候测试(经过)


    JavaAPI拜候(经过)
    间接拜候nginx的9000端口即后,再不必于本人手写代码完成api接口的负载平衡了。




    deepin
    另:自己的操作零碎为deepin 20(绝对不是给deepin做鼓吹),deepin是基于debian的linux零碎,十分好用。保举大家尝试。上个图:




    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    中级会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题43

    帖子52

    积分239

    图文推荐