【Minio】Docker部署Minio + 使用nginx配置https访问

【Minio】Docker部署Minio + 使用nginx配置https访问

前言

通过nginx反向代理,将https请求转发到内部Minio服务端口,内部的Minio还是使用http

Docker安装可参考:Docker实战

1. 申请ssl证书

如果是使用阿里云的话,可以搜索数字证书管理服务,个人免费版90天有效期。
申请好后下载Nginx证书,并上传到自己的服务器/etc/nginx/ssl/minio目录下。

在这里插入图片描述

2. 部署Minio

# 定义compose语义版本
version: '3.8'
# 定义服务
services:
  minio:
    image: minio/minio:latest
    container_name: minio
    restart: unless-stopped
    command: server /data --console-address ":9001" -address ":9000"
    environment:
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
      MINIO_SERVER_URL: https://minio.xxxx.com  # Minio API
      MINIO_BROWSER_REDIRECT_URL: https://minio.xxxx.com/web  # Minio Web控制台
      MINIO_ROOT_USER: minioadmin  # Root用户名
      MINIO_ROOT_PASSWORD: xxxxxx  # Root用户密码
    volumes:
      - "/usr/local/docker/minio/data:/data"
      - "/usr/local/docker/minio/config:/root/.minio"
    ports:
      - "9000:9000"
      - "9001:9001"

3. 配置Nginx

/etc/nginx/conf.d下新增配置文件minio.conf,配置如下:

server {
    listen 443 ssl;
    server_name minio.xxxx.com;

    ssl_certificate     /etc/nginx/ssl/minio/minio.xxxx.com.pem;
    ssl_certificate_key /etc/nginx/ssl/minio/minio.xxxx.com.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;

    location / {
        client_max_body_size 500m;
        proxy_connect_timeout 300;
        proxy_send_timeout 300;
        proxy_read_timeout 300;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;

        proxy_pass http://localhost:9000;
    }

    location /web/ {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_buffering off;
		
		proxy_pass http://localhost:9001/;
    }

}

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

配置好后,记得执行:nginx -s realod

在这里插入图片描述

4. 问题记录

问题1: web控制台中无法查看bucket里面的内容
打开浏览器 F12 控制台发现有很多WebSocket connection to ...的报错信息如下图:
在这里插入图片描述
解决方案:Nginx配置中增加以下内容:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qiye丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值