Для настройки балансировки обращений к кластеру PGS рекомендуется использовать внешний, по отношению к продукту, балансировщик. Балансировка необходима для сервисов Nginx на серверах группы Nginx.
При использовании балансировщика DNS-запись pgs.<domain_name> или pgs-<domain_env>.<domain_name> должна указывать на IP-адрес сервера с балансировщиком, а конфигурация балансировщика должна включать:
–входящие соединения по порт 443 — обращения к приложению;
–входящие соединения на порт 5673 — обращения к RabbitMQ;
–входящие соединения на порт 9002 — обращения к MinIO, при использовании MinIO из состава дистрибутива PGS как s3.
Пример конфигурации сервиса Haproxy выполняющего роль внешнего балансировщика, установленного на отдельном сервере вне кластера PGS.
Пример конфигурационного файла /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
maxconn 50000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stat
defaults
log global
mode tcp
option tcplog
option dontlognull
option http-server-close
retries 5
timeout http-request 30s
timeout queue 10m
timeout connect 30s
timeout client 10m
timeout server 10m
timeout http-keep-alive 10s
timeout check 10s
maxconn 50000
frontend main
bind *:443
default_backend app
backend app
balance roundrobin
server app1 host1.example.com:443 check
server app2 host2.example.com:443 check
frontend minio
bind *:9002
default_backend minio_server
backend minio_server
balance roundrobin
server minio1 host1.example.com:9002 check
server minio2 host2.example.com:9002 check
frontend rabbitmq
bind 0.0.0.0:5673
default_backend rabbitmq_cluster
backend rabbitmq_cluster
balance roundrobin
server rabbitmq1 host1.example.com:5673 check
server rabbitmq2 host2.example.com:5673 check