- Created by Pavel Golubnichiy, last modified on Apr 10, 2020
Схема размещения компонентов
При большом количестве одновременно открытых сессий целесообразно добавить дополнительные серверы доступа.
Пусть их имена будут gw2 gw3 gw4 и т.д., настройка производится аналогично.
IP адреса HAProxy и дополнительных серверов доступа необходимо перечислить в настройках Indeed PAM Core в файле
C:\inetpub\wwwroot\api\Web.config в секции PamProxyIpAddresses:
<add key="PamProxyIpAddresses" value="192.168.10.140, 192.168.10.145, 192.168.10.146, 192.168.10.147, 192.168.10.148 " />
В настройках User Console в файле C:\inetpub\wwwroot\uc\assets\config\config.prod.json в секции Gateway Server необходимо ввести адрес балансировщика, например:
"gatewayServer": {
"address": "haproxy.domain.local"
},
Настройки HAProxy в случае с четырьмя серверами представлены в примере:
global
log /dev/haproxy/log local0 # см https://en.wikipedia.org/wiki/Syslog#Facility
log /dev/haproxy/log local1 notice # notice - уровень ошибки. весь список: emerg, alert, crit, err, warning, notice, info, debug
chroot /var/lib/haproxy # изменяем директорию выполнения для защиты от атак, папка пуста и нет прав
maxconn 256 # максимальное количество одновременных подключений.
stats socket /run/haproxy/admin.sock mode 660 level admin # связывает сокет с admin.sock
stats timeout 3s
user haproxy
group haproxy
daemon # Запустить процесс в фоновом режиме
defaults
log global # параметры лога берутся из секции global
mode tcp # режим работы экземпляра HAProxy
option dontlognull # отключить логи для фиктивных подключений
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
retries 3 # кол-во попыток до того, как понизить статус сервера
# Статистика
stats enable # включение вывода статистики
stats hide-version # скрытие версии HAProxy на странице статистики
stats realm HAProxy\ Statistics # установка authentication realm
stats uri /haproxy # установка ссылки на страницу статистики
stats auth stat:stat # логин и пароль от страницы статистики
# Алгоритм выбора сервера
balance roundrobin # выбор сервера перебором по порядку
frontend ft_rdp
mode tcp
bind 192.168.10.140:3389 # Адрес и порт на HAProxy для подключения клиентов
timeout client 1h
log global
option tcplog # настройка логов TCP подключений с состояниями и таймерами
tcp-request inspect-delay 2s # установка максимального времени анализа входящего соединения
tcp-request content accept if RDP_COOKIE # сессия открывается при наличии RDP протокола
default_backend bk_rdp # название backend, обрабатывающего запросы
backend bk_rdp
mode tcp
balance leastconn # выбор сервера с наименьшим числом активных соединений
timeout server 1h
timeout connect 4s
log global
option tcp-check # Выполнить проверку доступности по TCP,
tcp-check connect port 3389 ssl # открывая зашифрованное соединение на порт 3389.
stick-table type ip size 1m expire 12h # настраиваем таблицу привязки по ip размером 1 млн записей и временем жизни записи 12 часов
stick on src # использовать ip-адрес клиента для привязки
default-server inter 3s rise 2 fall 3 # Установить интервал проверки у серверов backend 3 сек. Сервер будет считаться активным после 2 успешных проверок и недоступным после 3 неудачных проверок.
server gw4 192.168.10.148:3389 weight 10 check verify none #######################
server gw3 192.168.10.147:3389 weight 10 check verify none #Сервера PAM Gateway
server gw2 192.168.10.146:3389 weight 10 check verify none #веса серверов равны относительно друг друга
server gw1 192.168.10.145:3389 weight 10 check verify none #проверка доступности включена, сертификат не проверяется
- No labels