Перейти к содержанию

Конфигурация HAProxy для S3 Minio

Для равномерной балансировки трафика между серверами кластера S3 MinIO установите конфигурацию HAProxy. В случае сбоя это обеспечит стабильную работу системы.

Пример конфигурации HAProxy для MinIO

В этой статье подготовлена конфигурация для балансировки трафика в кластере, развёрнутом согласно описанию из статьи Кластер MinIO. Для этого используется HAProxy. С его помощью происходит балансировка клиентских подключений, приходящих на minio.your_domain:9000, между серверами кластера.

Чтобы создать конфигурацию HAProxy для S3 Minio выполните следующие действия:

  1. Откройте для редактирования конфигурационный файл haproxy.cfg с помощью команды:

    sudo nano /etc/haproxy/haproxy.cfg
    
  2. Внесите изменения в конфигурационный файл haproxy.cfg:

    Пример конфигурации:

    ### S3 MinIO ###
    listen s3minio
        bind minio.your_domain:9000
        mode http
        balance leastconn
        server minio1 minio-server1.your_domain:9000 check inter 2s
        server minio2 minio-server2.your_domain:9000 check inter 2s
        server minio3 minio-server3.your_domain:9000 check inter 2s
        server minio4 minio-server4.your_domain:9000 check inter 2s
    ### S3 MinIO ###
    

    Пример конфигурации HAProxy с использованием SSL:

    Включение SSL возможно, если встроена поддержка OpenSSL. В параметре crt укажите путь до файла PEM, содержащего требуемые сертификаты и связанные закрытые ключи (fullchain-сертификат). Eсли файл не содержит закрытого ключа, HAProxy попытается загрузить ключ по тому же пути с суффиксом .key.

    Если вместо PEM-файла используется имя каталога, то все файлы, найденные в этом каталоге, будут загружены в алфавитном порядке, кроме файлов, заканчивающихся на .issuer, .ocsp и .sctl (зарезервированные решения).

    В параметре ca-file укажите путь до файла PEM, содержащего корневой сертификат. Подробнее читайте в Configuration Manual для используемой версии HAProxy. Пример для HAProxy 2.5

    ### S3 MinIO ###
    listen s3minio
        bind minio.your_domain:9000 ssl crt /etc/haproxy/ssl/minio-server.your_domain.pem
        mode http
        balance leastconn
        server minio1 minio-server1.your_domain:9000 check inter 2s ssl crt /etc/haproxy/ssl/minio-server.your_domain.pem ca-file /etc/haproxy/ssl/rootCA_your_domain.pem
        server minio2 minio-server2.your_domain:9000 check inter 2s ssl crt /etc/haproxy/ssl/minio-server.your_domain.pem ca-file /etc/haproxy/ssl/rootCA_your_domain.pem
        server minio3 minio-server3.your_domain:9000 check inter 2s ssl crt /etc/haproxy/ssl/minio-server.your_domain.pem ca-file /etc/haproxy/ssl/rootCA_your_domain.pem
        server minio4 minio-server4.your_domain:9000 check inter 2s ssl crt /etc/haproxy/ssl/minio-server.your_domain.pem ca-file /etc/haproxy/ssl/rootCA_your_domain.pem
    ### S3 MinIO ###
    
  3. Перезапустите HAProxy для применения изменений:

    sudo systemctl restart haproxy