Запуск HAProxy на FreeBSD 13.1

Краткая инструкция по запуску балансировщика нагрузки HAProxy на ОС FreeBSD 13.1.

В первую очередь установим пакеты haproxy и haproxy_lua

# pkg install haproxy haproxy_lua

Затем откроем файл /etc/rc.conf

# vi /etc/rc.conf

и добавим в него такую строку:

haproxy_enable="YES"

Теперь создадим файл конфигурации /usr/local/etc/haproxy.conf и откроем его

# touch /usr/local/etc/haproxy.conf
# vi /usr/local/etc/haproxy.conf

и впишем в него:

global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        maxconn 4096
        daemon

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        option  forwardfor
        option  http-server-close
        option  httpclose
        timeout server  86400000
        timeout client  86400000
        timeout connect 5000

frontend fvm50
        bind *:80
        use_backend     fvm50_back

frontend fvm
        bind *:8080
        use_backend     fvm_back

backend fvm50_back
        balance roundrobin
        server dvm31 192.168.1.31:80
        server dvm32 192.168.1.32:80

backend fvm_back
        server fvm 192.168.1.20:80

Теперь подробнее о нём

У нас имеются 4 машины

  • две — с веб-сервером nginx: dvm31 с IP 192.168.1.31 и dvm32 с IP 192.168.1.32, обе — с открытым портом 80/tcp (это указано в параметре bind);
  • одна машина — это сервер с HAProxy — fvm50, например, с IP 192.168.1.50;
  • и ещё одна — тоже, с веб-сервером nginx или apache — fvm с IP 192.168.1.20, она также использует порт 80/tcp, но обратиться к этой машине возможно только через порт 8080/tcp (это также указано в параметре bind).

В данном конфиге запросы поступают равномерно по всем перечисленным серверам, но можно распределить их по количеству запросов, добавив параметр weight, например, каждый 10-й запрос будет отправляться на сервер dvm32:

        server dvm31 192.168.1.31:80 weight 90
        server dvm32 192.168.1.32:80 weight 10

После этого запустим службу haproxy

# service haproxy start

На другой машине в сети в браузере вводим http://ИмяХоста/ или http://IP_сервера/ (IP сервера в данном случае 192.168.1.50) и подключимся к веб-серверам 192.168.1.31 и 192.168.1.32.

У HAProxy есть также множество других фишек, подходящих под определённые задачи. Все они описаны в документации и различных мануалах, которые можно найти на просторах всемирной паутины.

Добавить комментарий

Ваш адрес email не будет опубликован.