You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

При одновременной балансировке сервер HAProxy будет принимать запросы и как веб-сервер на адреса api, и как RDS сервер.

Необходимо указать адрес HAProxy в файлах:

C:\inetpub\wwwroot\mc\assets\config\config.prod.json
"apiServer": {
"url": "https://haproxy.domain.local/api"
},
C:\inetpub\wwwroot\uc\assets\config\config.prod.json
"apiServer": {
"url": "https://haproxy.domain.local/api"
},
"gatewayServer": {
"address": "haproxy.domain.local"
},
C:\Program Files\inRights PAM\Gateway\ProxyApp\Pam.Proxy.App.exe
<pamProxy ApiUrl="https://haproxy.domain.local/api" IdpUrl="https://pam1.domain.local/idp" ... FileCopyMinBytesToSave="1048576" />

Таким образом, в конфигурации HAProxy должны быть настроены отдельные frontend и backend для каждого сервиса.

Для двух PAM Core и двух PAM Gateway конфигурация 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                              # Запустить процесс в фоновом режиме

    # Default SSL material locations
	ca-base /etc/ssl/certs
	crt-base /etc/ssl/private

defaults
    log global          # параметры лога берутся из секции global
    mode tcp            # режим работы экземпляра HAProxy
    option dontlognull  # отключить логи для фиктивных подключений
    timeout connect 5000ms
    timeout client  50000ms
    timeout server  50000ms
    retries 3 # кол-во попыток до того, как понизить статус сервера
	errorfile 400 /etc/haproxy/errors/400.http
	errorfile 403 /etc/haproxy/errors/403.http
	errorfile 408 /etc/haproxy/errors/408.http
	errorfile 500 /etc/haproxy/errors/500.http
	errorfile 502 /etc/haproxy/errors/502.http
	errorfile 503 /etc/haproxy/errors/503.http
	errorfile 504 /etc/haproxy/errors/504.http

# Stats
frontend stats
	bind *:8404                     # настройка интерфейса для просмотра статистики
	stats enable                    # включение вывода статистики
	stats hide-version              # скрытие версии HAProxy на странице статистики
	stats realm Haproxy\ Statistics # установка authentication realm
	stats uri /haproxy              # установка ссылки на страницу статистики
	stats auth stat:stat            # логин и пароль от страницы статистики
	stats refresh 3s                # период обновления страницы статистики

frontend ft_rdp
    mode tcp                 # режим работы frontend
    bind 192.168.48.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                # режим работы backend
    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 млн записей и временем жизни записи 1 час
    stick on src                            # использование ip-адреса клиента для привязки
    default-server inter 3s rise 2 fall 3   # Установить интервал проверки у серверов backend 3 сек. Сервер будет считаться активным после 2 успешных проверок и недоступным после 3 неудачных проверок.
    server gw1 192.168.10.145:3389 weight 10 check verify none     # Сервера PAM Gateway: веса серверов равны относительно друг друга,
    server gw2 192.168.10.146:3389 weight 10 check verify none     # проверка доступности включена, сертификат не проверяется

frontend frontend_http
	mode http                       # режим работы frontend
	bind *:443 ssl crt /etc/ssl/certs/ubuntu.test.com.pem  # настройка интерфейса для входящих запросов
	option forwardfor               # передать оригинальный ip адрес клиента серверу
	default_backend backend_http    # название backend, обрабатывающего запросы

backend backend_http
	mode http                       # режим работы backend
	option prefer-last-server       # попытка повторно использовать тоже соединение к серверу
	option redispatch
	balance roundrobin
	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 15s  # отключена проверка сертификатов, проверка доступности 15 сек
	server pam1 192.168.10.121:443 ssl verify none check inter 15s  ##










  • No labels