Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Схема размещения компонентов

При большом количестве одновременно открытых сессий к размещению 2 целесообразно добавить дополнительные серверы доступа.

Пусть их имена будут gw2 gw3 gw4 и т.д., настройка производится аналогично.

IP адреса HAProxy и дополнительных серверов доступа необходимо перечислить в настройках Indeed PAM Core в файле

...


C:\inetpub\wwwroot\api\Web.config в секции PamProxyIpAddresses:

Code Block
languagexml
<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 необходимо ввести адрес балансировщика, например

...

:

Code Block
languagejs
"gatewayServer": {
"address": "haproxy.indeed-id.local"
},

...

Настройки HAProxy в случае с четырьмя серверами

...

представлены в примере:

Code Block
languagejs
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 

...

	#проверка доступности включена, сертификат не проверяется