You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

私有服务器双Minio容器部署后,无法通过域名访问控制台

私有服务器部署Minio容器无法通过公网子域名访问控制台问题排查

问题描述

在私有服务器部署两个Minio容器,本地执行docker compose up测试时,可通过stash-one.localhost和stash-two.localhost正常访问控制台;已在GoDaddy配置stash-one、stash-two、storage-one、storage-two的DNS记录,但无法通过mybeautifuldomain.com的子域名访问Minio控制台。

相关配置

docker-compose.yaml

version: '3.8'

services:
  minio_server_one:
    image: minio/minio:latest
    restart: always
    container_name: minio_server_one
    volumes:
      - ./minio/data:/data
    expose:
      - 9000
      - 9091
    environment:
      MINIO_ROOT_USER: ${MINIO_ROOT_USER_ONE}
      MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD_ONE}
      MINIO_BROWSER_REDIRECT_URL: http://stash-one.localhost
    command: "server /data --console-address ':9090'"

  minio_server_two:
    image: minio/minio:latest
    restart: always
    container_name: minio_server_two
    volumes:
      - ./minio/data:/data
    expose:
      - 9001
      - 9092
    environment:
      MINIO_ROOT_USER: ${MINIO_ROOT_USER_TWO}
      MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD_TWO}
      MINIO_BROWSER_REDIRECT_URL: http://stash-two.localhost
    command: "server /data --console-address ':9093'"  

  caddy_reverse_proxy:
      container_name: caddy_reverse_proxy
      image: caddy:alpine
      restart: always
      ports:
        - 80:80      
        - 443:443
      environment:
        - EXT_ENDPOINT1=${EXT_ENDPOINT1}
        - LOCAL_1=${LOCAL_1}
        - LOCAL_2=${LOCAL_2}
      volumes:
        - ./caddy/Caddyfile:/etc/caddy/Caddyfile
        - ./static:/code/static
        - caddy_data:/data
        - caddy_config:/config

volumes:
  caddy_data:
  caddy_config:

Caddyfile

{$EXT_ENDPOINT1}对应mybeautifuldomain.com

storage-one.{$EXT_ENDPOINT1}, storage-one.{$LOCAL_1}, storage-one.{$LOCAL_2} {
  reverse_proxy minio_server_one:9000 
}

stash-one.{$EXT_ENDPOINT1}, stash-one.{$LOCAL_1}, stash-one.{$LOCAL_2} {
  reverse_proxy minio_server_one:9090 
}

storage-two.{$EXT_ENDPOINT1}, storage-two.{$LOCAL_1}, storage-two.{$LOCAL_2} {
  reverse_proxy minio_server_two:9001 
}

stash-two.{$EXT_ENDPOINT1}, stash-two.{$LOCAL_1}, stash-two.{$LOCAL_2} {
  reverse_proxy minio_server_two:9093 
}

.env

#############################################
# Caddy variables
#############################################
EXT_ENDPOINT1=mybeautifuldomain.com
LOCAL_1=localhost
LOCAL_2=127.0.0.1

#############################################
# Minio variables
#############################################
MINIO_URL_ONE=storage-one.localhost
MINIO_BUCKET_ONE=minio-one
MINIO_ROOT_USER_ONE=minioadmin
MINIO_ROOT_PASSWORD_ONE=SECRETSECRET

#############################################
# Minio variables
#############################################
MINIO_URL_TWO=storage-two.localhost
MINIO_BUCKET_TWO=minio-two
MINIO_ROOT_USER_TWO=minioadmin
MINIO_ROOT_PASSWORD_TWO=SECRETSECRET

排查解决步骤

1. 确认DNS记录生效

  • 在本地和服务器上执行nslookup stash-one.mybeautifuldomain.com或dig stash-one.mybeautifuldomain.com,验证子域名是否正确解析到服务器公网IP。
  • 若解析异常,等待DNS生效(通常1-24小时),或检查GoDaddy的记录类型(需配置A记录指向服务器公网IP)。

2. 放行服务器端口

  • 确认服务器防火墙/云安全组已开放80(HTTP)和443(HTTPS)端口的入站规则,Caddy依赖这两个端口对外提供服务。

3. 修正Minio环境变量

当前MINIO_BROWSER_REDIRECT_URL设置为localhost地址,外部访问时Minio会重定向到本地地址导致失效,需修改为公网子域名,并补充API地址配置:

  • 修改docker-compose.yaml中Minio服务的环境变量:
    # minio_server_one 部分
    environment:
      MINIO_ROOT_USER: ${MINIO_ROOT_USER_ONE}
      MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD_ONE}
      MINIO_BROWSER_REDIRECT_URL: https://stash-one.${EXT_ENDPOINT1}
      MINIO_SERVER_URL: https://storage-one.${EXT_ENDPOINT1}
    
    # minio_server_two 部分
    environment:
      MINIO_ROOT_USER: ${MINIO_ROOT_USER_TWO}
      MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD_TWO}
      MINIO_BROWSER_REDIRECT_URL: https://stash-two.${EXT_ENDPOINT1}
      MINIO_SERVER_URL: https://storage-two.${EXT_ENDPOINT1}
    
  • 修改后重启容器:docker compose down && docker compose up -d

4. 检查Caddy运行状态

  • 查看Caddy容器日志排查错误:docker logs caddy_reverse_proxy,确认证书生成、反向代理是否正常。
  • 验证容器间网络连通性:进入Caddy容器docker exec -it caddy_reverse_proxy sh,执行ping minio_server_one和ping minio_server_two,确保能正常访问Minio容器。

5. 验证Minio端口监听

  • 检查Minio容器端口是否正常监听:
    docker exec minio_server_one netstat -tulpn | grep -E "9000|9090"
    docker exec minio_server_two netstat -tulpn | grep -E "9001|9093"
    
  • 若端口未监听,检查Minio启动命令是否正确,确认容器日志无报错:docker logs minio_server_one

6. 使用HTTPS访问

Caddy默认会自动将HTTP请求重定向到HTTPS,直接访问https://stash-one.mybeautifuldomain.com和https://stash-two.mybeautifuldomain.com测试。

内容的提问来源于stack exchange,提问作者Jim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 19:59:49