- Created by Pavel Golubnichiy, last modified on Apr 10, 2020
Для балансировки PAM Core рекомендуется к использованию схема Active-Passive.
Добавляются дополнительные сервера с установленными PAM Core.
Пусть их имена будут pam2, pam3 и т.д., настройка каждого PAM Core выполняется в точности как и первого, файлы конфигурации c:\inetpub\wwwroot\api\Web.config должны быть одинаковыми.
В качестве api будет выступать сам балансировщик, на него будут завязаны все PAM Core. Адрес балансировщика необходимо прописать в соответствующих секциях файлов конфигурации User Console, Management Console и Gateway:
Для файлов C:\inetpub\wwwroot\uc\assets\config\config.prod.json и C:\inetpub\wwwroot\mc\assets\config\config.prod.json
"apiServer": {
"url": "https://haproxy.domain.local/api"
},
Для файла C:\Program Files\Indeed PAM\Gateway\ProxyApp\Pam.Proxy.App.exe
<pamProxy ApiUrl="https://haproxy.domain.local/api" IdpUrl="https://pam1.domain.local/idp" ... FileCopyMinBytesToSave="1048576" />
Настройки 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 30s
# Неизменяемые настройки HAPROXY
user haproxy
group haproxy
daemon # Запустить процесс в фоновом режиме
defaults
log global
mode http
option httplog
option dontlognull
# Таймауты
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
retries 3 # кол-во попыток до того, как понизить статус сервера
# Статистика
stats enable
stats hide-version
stats realm Haproxy\ Statistics
stats uri /haproxy #здесь указываем ссылку на страницу статистики
stats auth stat:stat
option httpchk HEAD / HTTP/1.0
# Настройки доступа
option redispatch # Позволит пользователям пройти к другому серверу если сервер, на который ссылаются их куки, не работает
balance roundrobin # алгоритм выбора сервера (наименее загруженный по порядку)
frontend frontend_http
bind *:443 ssl crt /etc/ssl/certs/haproxy.domain.local.pem # настройка интерфейса фронтенда с указанием пути к сертификату этого сервера
option forwardfor # передать оригинальный ip адрес клиента серверу
default_backend backend_http # указываем какой backend обрабатывает запросы
backend backend_http
option prefer-last-server # попытка повторно использовать тоже соединение к серверу
option httpchk GET /api/isHealthy # проверка доступности приложения PAM Core
stick-table type string len 35 size 1m expire 1d # Настройка, необходимая для связи gateway и core, иначе просмотр видеопотока работать не будет
stick on path,word(2,/) if { path_beg /screencast/ } ##
server pam2 192.168.10.122:443 ssl verify none check inter 5000ms # названия серверов для HAProxy мониторинга, проверка доступности включена, сертификат не проверяется
server pam1 192.168.10.121:443 backup ssl verify none check inter 5000ms # backup-сервер неактивен пока основной сервер доступен для подключений
- No labels