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

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

    • 前言
    • [1. 申请ssl证书](#1. 申请ssl证书)
    • [2. 部署Minio](#2. 部署Minio)
    • [3. 配置Nginx](#3. 配置Nginx)
    • [4. 问题记录](#4. 问题记录)

前言

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

Docker安装可参考:Docker实战

1. 申请ssl证书

如果是使用阿里云的话,可以搜索数字证书管理服务,个人免费版90天有效期。

申请好后下载Nginx证书,并上传到自己的服务器/etc/nginx/ssl/minio目录下。

2. 部署Minio

yaml 复制代码
# 定义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,配置如下:

bash 复制代码
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配置中增加以下内容:

相关推荐
pblh12322 分钟前
基于Docker部署测试PySpark
运维·docker·容器
yBmZlQzJ39 分钟前
财运到内网穿透-群晖NAS安装(docker版本)
运维·经验分享·网络协议·docker·容器
白学还是没白学?1 小时前
exec db docker from A to B
数据库·docker·容器
WGS.1 小时前
docker run 报错:ImportError: PyCapsule_Import could not import module “datetime“
docker
萨文 摩尔杰2 小时前
Docker
docker
Lethehong2 小时前
从零到精通:Docker容器化完整指南与实战练习
运维·docker·容器
李少兄2 小时前
从零开始全面掌握 HTTPS
网络协议·http·https
J2虾虾2 小时前
上传文件出现“ 413 Request Entity Too Large“错误
nginx
枫叶梨花2 小时前
Nginx HTTPS代理大文件加载失败的排查与解决方案
nginx
游戏开发爱好者82 小时前
HTTPS DDoS 排查 异常流量到抓包分析
网络协议·ios·小程序·https·uni-app·iphone·ddos