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

Haproxy на Ubuntu 20.04 LTS

Ubuntu

Установим и настроим балансировщик haproxy на Ubuntu 20.04 LTS. Балансировать будем в режиме roundrobin порт TCP 25 на порты localhost TCP 26, 27, 28, 29, 30. На этих портах работает postfix в режиме multi-instance, сделаем единый 25 порт, который будет балансировать нагрузку между экземплярами почтового сервера.

Мне этим и нравится hproxy, что он может балансировать не только нагрузку на web-сайты, при этом прост в установке и настройке.

Плюс haproxy предоставляет возможность мониторинга и просмотра статистики.

Установка haproxy

Установка haproxy не отличается сложностью.

apt-get update
apt-get install haproxy

haproxy

Настройка haproxy

Создаём конфигурационный файл /etc/haproxy/haproxy.cfg:

global
        log 127.0.0.1  local0
        log 127.0.0.1  local1 notice
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s

        # Default SSL material locations
        ca-base /etc/ssl/certs
        crt-base /etc/ssl/private

        # Default ciphers to use on SSL-enabled listening sockets.
        # For more information, see ciphers(1SSL). This list is from:
        #  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
        ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
        ssl-default-bind-options no-sslv3

defaults
        log     global
        mode    http
        option  tcplog
        option  dontlognull
        maxconn 4000
        timeout connect 100
        timeout client  50000
        timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http

listen stats
    balance
    bind *:25002
    mode http
    stats enable
    stats uri /
    stats auth admin:password

listen multi-postfix
    no option http-server-close
    mode tcp
    bind *:25
    default_backend multi-backend-postfix

backend multi-backend-postfix
    mode tcp
    balance roundrobin
    server postfix-01 localhost:26 check inter 3000 rise 2 fall 2
    server postfix-02 localhost:27 check inter 3000 rise 2 fall 2
    server postfix-03 localhost:28 check inter 3000 rise 2 fall 2
    server postfix-04 localhost:29 check inter 3000 rise 2 fall 2
    server postfix-05 localhost:30 check inter 3000 rise 2 fall 2
  • listen multi-postfix: mode tcp, bind *:25 — слушаем TCP 25
  • backend multi-backend-postfix: mode tcp, balance roundrobin — по очереди перенаправляем трафик на localhost:26, localhost:27, localhost:28, localhost:29, localhost:30
  • listen stats: bind *:25002 — на этом порту статистика, не забудьте сменить пароль админа.

Теги

 

Похожие материалы

sed & awk

Дейл Догерти, Арнольд Роббинс, перевод В.Айсин
Sed и awk - это инструменты, используемые пользователями, программистами и системными администраторами - всеми, кто работает с текстовыми файлами. Sed, названный так потому, что это потоковый редактор, и он идеально подходит для применения серии правок к нескольким файлам. Awk, названный в честь разработчиков Ахо, Вайнбергера и Кернигана, является языком программирования, который позволяет легко манипулировать структурированными данными и создавать форматированные отчеты.

Теги

Ubuntu Server 18.04 — апгрейд до версии 20.04

Всем доброй ночи. Ночи, потому что системные администраторы чаще всего занимаются апгрейдом операционный систем по ночам, потому как днём на серверах работают юзеры. Сегодня апгрейдим Ubuntu Server 18.04 до версии 20.04.

Теги