前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MinIO+Nginx开启https域名访问

MinIO+Nginx开启https域名访问

作者头像
itze
发布2023-01-08 10:38:08
14.7K3
发布2023-01-08 10:38:08
举报
文章被收录于专栏:IT者IT者

前言:按照文章顺序操作,踩过的坑都避开了!

环境

  • 文章建立在MinIO服务是通过Docker容器创建
  • 假设本文以下使用域名:minio.itze.cn
  • 假设服务器IP:123.123.123.123

前期准备

1.将域名解析到服务器IP

查看解析成功示例,windows下使用命令

代码语言:javascript
复制
ping minio.itze.cn -t

出现如上图所示,说明域名已经解析到对应的IP地址,会有人问:去哪里添加解析,答:去购买域名的厂商控制台,比如你的域名是阿里云注册的,就登陆阿里云控制台有相关解析操作流程

2.申请域名对应的SSL免费证书,PS:资金富裕的直接付费买

这里提供一个申请免费的地址,每次申请有效期1年,https://console.cloud.tencent.com/ssl

申请SSL注意事项:按照提示,需要有验证域名是你的操作,一般两种方式,1.DNS,2.文件,建议使用推荐的方法添加一条解析即可,一般十几分钟就能颁发证书,证书颁发后选择-下载-Nginx

nginx反向代理MinIO API地址并配置https

这里利用到了Nginx的反向代理,配置文件如下,建议不要改动原来的nginx.conf文件,另外再单独创建一个nginx_minio.conf文件在默认的nginx.conf文件中加入一句话,位置放到http{}块中

代码语言:javascript
复制
include /你的nginx_minio.conf的路径/*.conf;

nginx_minio.conf 配置完整内容

代码语言:javascript
复制
    #itze.cn ProxyStart
    upstream minio {
        server 127.0.0.1:9000 fail_timeout=0;
    }
    server {
         listen 443 ssl;
         server_name minio.itze.cn;

        ssl_certificate     ./cert/你的.crt; #这里换成你的证书上传的位置 
         ssl_certificate_key ./cert/你的.key; #这里换成你的证书上传的位置
         ssl_session_timeout 5m;
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
         ssl_prefer_server_ciphers on;   
         client_max_body_size   30m; #最大上传限制         

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass   https://minio;

            proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
            proxy_set_header Hosthttp_host;
            proxy_set_header X-Forwarded-Proto https;
            proxy_redirect off;
            proxy_connect_timeout      310;
            proxy_send_timeout         310;
            proxy_read_timeout         310;

        }
        #异常状态码跳转
        error_page  307   https://www.itze.cn;
        error_page  400   https://www.itze.cn;
        error_page  403   https://www.itze.cn;
        error_page  404   https://www.itze.cn;
        error_page  500   https://www.itze.cn;
        error_page  502   https://www.itze.cn;

    }   
    #itze.cn ProxyEnd

    #http forced jump https http强制跳转https配置
    server{  
        listen 80;
        server_name minio.itze.com;
        rewrite ^(.*)$  https://minio.itze.com;
        location ~ / {
        index index.html index.php index.htm;
        }
    }   

MinIO 配置https

1.证书准备

将申请的SSL证书 .key结尾的重命名为:private.key和 .crt结尾的重命名为:public.crt 别问为什么,官方规定,不信自己看官方文档:https://min.io/docs/minio/linux/operations/network-encryption.html?ref=docs-redirect

然后将private.key和public.crt两个文件放到MinIO目录certs下面:/你的minio目录/config/certs,算了还是上个图吧

2.容器更改

创建容器命令更改为以下,注意,如果原来路径下有文件存在,把原来的minio容器删掉重新创建不会有影响!

代码语言:javascript
复制
docker run -d -p 9000:9000 -p 50000:50000 --name minio \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=123456" \
-e "MINIO_SERVER_URL=https://minio.itze.cn  " \
-v /root/minio/data:/data \
-v /root/minio/config:/root/.minio \
minio/minio server  /data --console-address ":50000" -address ":9000"

命令解释看文章:Docker部署MinIO

3.访问

控制台访问地址:https://minio.itze.cn:50000

API访问地址:https://minio.itze.cn

注意:这里如果直接访问API的访问地址,MinIO会307默认跳转到控制台页面,控制台登录页面我们当然不想让外部知道,上面的nginx_minio.conf已经做了错误页面配置,如果你的不生效,请检查nginx的默认配置文件nginx.conf中有没有以下一句话:同样放到http{}块中即可,记得重启nginx服务

代码语言:javascript
复制
proxy_intercept_errors on;

重点注意事项

这里稍微解释一个命令:-e “MINIO_SERVER_URL=https://minio.itze.cn ” 这也是上面nginx里面为什么会那样配置的原因

这个地址是MioIO API访问请求的地址,这里创建容器时是什么,无论在MinIO控制台或者是通过API代码分享的文件链接的前缀就是这个!,这里为什么我们直接写成了域名,而不是网上大部分说的IP+端口号,原因就是文章上面的nginx_minio.conf已经做了反向代理,访问https://minio.itze.cn 就等于访问 https://123.123.123.123:9000 明白了吗 但是如果浏览器直接访问后面这个IP+端口的浏览器会报SSL证书不安全,因为我们签发证书是对minio.itze.cn这个域名主题

MINIO_SERVER_URL等于什么下面分享链接的红色字体就是什么,如果你用的是服务器的外网域名+端口,下面就是IP:端口号,如果硬是改成域名访问会报错

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023年1月6日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:按照文章顺序操作,踩过的坑都避开了!
  • 环境
    • 前期准备
      • 1.将域名解析到服务器IP
      • 2.申请域名对应的SSL免费证书,PS:资金富裕的直接付费买
    • nginx反向代理MinIO API地址并配置https
      • MinIO 配置https
        • 1.证书准备
        • 2.容器更改
        • 3.访问
      • 重点注意事项
      相关产品与服务
      SSL 证书
      腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档