﻿# Конфигурация HAProxy для web ELMA365

> [HTML Version](haproxy-web-elma365.html)

Aрхитектура высокодоступного кластера ELMA365 подразумевает взаимодействие микросервисов приложения ELMA365 в рамках отказоустойчивого кластера. Для равномерной балансировки трафика между серверами кластера Kubernetes установите конфигурацию HAProxy. В случае сбоя это обеспечит стабильную работу системы.

## Пример конфигурации HAProxy для web ELMA365

В этой статье представлена конфигурация HAProxy, с помощью которой равномерно происходит балансировка клиентских подключений, приходящих на \[OBJECT\], между серверами Kubernetes-кластера.

Чтобы создать конфигурацию HAProxy для web ELMA365 выполните следующие действия:

1. Откройте для редактирования конфигурационный файл \[OBJECT\] с помощью команды:

````
sudo nano /etc/haproxy/haproxy.cfg

2. ````
Внесите изменения в конфигурационный файл \[OBJECT\]:

Пример конфигурации

````
\### Web ELMA365 ###  
listen elma365\_web  
    bind haproxy-server.your\_domain:80  
    mode http  
    balance leastconn  
    no option http-use-htx  
    # http-use-htx is deprecated and ignored since Haproxy 2.1  
    option forwardfor  
    option httpclose  
    server elma365-1 elma365-1.your\_domain:80 check  
    server elma365-2 elma365-2.your\_domain:80 check  
    server elma365-3 elma365-3.your\_domain:80 check  
\### Web ELMA365 ###
````

````
Пример конфигурации HAProxy с использованием TLS

  
Включение TLS возможно, если встроена поддержка OpenSSL. В параметре \[OBJECT\] укажите путь до файла PEM, содержащего требуемые сертификаты и связанные закрытые ключи ([fullchain-сертификат](fullchain-sertificate.md)). Eсли файл не содержит закрытого ключа, HAProxy попытается загрузить ключ по тому же пути с суффиксом **.key**.

  
Если вместо PEM-файла используется имя каталога, то все файлы, найденные в этом каталоге, будут загружены в алфавитном порядке, кроме файлов, заканчивающихся на **.issuer**, **.ocsp** и **.sctl** (зарезервированные решения).

  
В параметре \[OBJECT\] укажите путь до файла PEM, содержащего корневой сертификат. Подробнее читайте в **Configuration Manual** для используемой версии HAProxy. Пример для [HAProxy 2.5](https://cbonte.github.io/haproxy-dconv/2.5/configuration.html#5.1-crt):  


````
\### Web ELMA365 ###  
listen elma365\_web  
    bind elma365.your\_domain:443 ssl crt /etc/haproxy/ssl/elma365-server.your\_domain.pem  
    mode http  
    balance leastconn  
    no option http-use-htx  
     # http-use-htx is deprecated and ignored since Haproxy 2.1  
     option forwardfor  
    option httpclose  
    server elma365-1 elma365-1.your\_domain:443 check inter 2s ssl crt /etc/haproxy/ssl/elma365-server.your\_domain.pem ca-file /etc/haproxy/ssl/rootCA\_your\_domain.pem  
    server elma365-2 elma365-2.your\_domain:443 check inter 2s ssl crt /etc/haproxy/ssl/elma365-server.your\_domain.pem ca-file /etc/haproxy/ssl/rootCA\_your\_domain.pem  
    server elma365-3 elma365-3.your\_domain:443 check inter 2s ssl crt /etc/haproxy/ssl/elma365-server.your\_domain.pem ca-file /etc/haproxy/ssl/rootCA\_your\_domain.pem  
\### Web ELMA365 ###
````

3. ````
Перезапустите HAProxy для применения изменений:

````
sudo systemctl restart haproxy
````