У меня есть экземпляр Windows RDS, к которому пользователи подключаются через Интернет, хотя мы разместили HAProxy, используя внешний/внутренний интерфейс TCP:
интерфейс front_https_rds
привязать XXX.XXX.XXX.XXX:443
режим TCP
тайм-аут клиента 6h
журнал глобальный
опция tcplog
вариант кличка
default_backend back_https_rds
серверная часть back_https_rds
режим TCP
тайм-аут сервера 6h
круговой баланс
журнал глобальный
опция tcplog
опция tcp-check
сервер srv-rdgateway priv.vat.e.IP:443 проверить
Важно отметить, что я использую шлюз удаленных рабочих столов через HTTPS (RPC через HTTP), а не стандартный RDP 3389.
Пользователи жалуются на частые отключения. Я вижу CD (клиент отключается на этапе передачи данных) в столбце terminal_state. Из логов HAProxy:
23 ноября 18:14:24 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:55674 [23/Nov/2021:18:08:48.979] front_https_rds back_https_rds/srv-rdgateway 1/0/335916 425072 CD 20/20/19/19/0 0/0
23 ноября 18:14:24 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:55678 [23/Nov/2021:18:08:49.370] front_https_rds back_https_rds/srv-rdgateway 1/0/335526 1295 SD 19/19/18/18/0 0/0
23 ноября 18:14:35 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56448 [23 ноября 2021:18:14:35.135] 20/20/19/19/0 0/0
23 ноября 18:14:35 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56451 [23/ноября/2021:18:14:35.461] 21/21/20/20/0 0/0
23 ноября 18:14:36 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56453 [23/ноября/2021:18:14:35.965] 21/21/20/20/0 0/0
23 ноября 18:16:13 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56447 [23/ноября/2021:18:14:34.997] front_https_rds back_https_rds/srv-rdgateway 1/0/98162 431661 CD 14/14/13/13/0 0/0
23 ноября 18:16:13 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56450 [23/Nov/2021:18:14:35.385] 13/13/12/12/0 0/0
23 ноября 18:16:23 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56746 [23/ноября/2021:18:16:23.423] 14/14/13/13/0 0/0
23 ноября 18:16:23 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56749 [23/ноября/2021:18:16:23.728] 15/15/14/14/0 0/0
23 ноября 18:16:24 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56751 [23/ноября/2021:18:16:24.232] 15/15/14/14/0 0/0
23 ноября 18:16:57 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56745 [23/Nov/2021:18:16:23.274] front_https_rds back_https_rds/srv-rdgateway 1/0/34020 230984 CD 14/14/13/13/0 0/0
23 ноября 18:16:57 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56747 [23/Nov/2021:18:16:23.655] front_https_rds back_https_rds/srv-rdgateway 1/0/33641 1295 SD 13/13/12/12/0 0/0
23 ноября 18:17:07 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56867 [23/ноября/2021:18:17:07.548] 14/14/13/13/0 0/0
23 ноября 18:17:07 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56870 [23/Nov/2021:18:17:07.872] front_https_rds back_https_rds/srv-rdgateway 00.01.92 3978 SD 15/15/14/14/0 0/0
23 ноября 18:17:08 srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56872 [23/ноября/2021:18:17:08.360] 15/15/14/14/0 0/0
Я предполагаю, что что-то на клиенте вызывает это, хотя я не могу ничего идентифицировать. Я добавил Keepalive в интерфейсе клиента без изменений.
Мне интересно, сталкивался ли кто-нибудь с этой проблемой раньше, или что-нибудь, что я мог бы сделать с точки зрения HAProxy для устранения неполадок?!
Моя глобальная конфигурация:
Глобальный
журнал /dev/лог локальный0
журнал /dev/log local1 уведомление
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 уровень администратора expose-fd listeners
статистика тайм-аут 30s
пользовательский прокси
группа haproxy
демон
# Расположение материалов SSL по умолчанию
ca-база /etc/ssl/сертификаты
crt-база /etc/ssl/частный
# Шифры по умолчанию для использования в прослушивающих сокетах с поддержкой SSL.
# Для получения дополнительной информации см. ciphers(1SSL). Этот список взят из:
# https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
# Альтернативный список с дополнительными директивами можно получить из
# https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxy
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
ssl-default-bind-параметры без sslv3
значения по умолчанию
журнал глобальный
режим http
опция httplog
опция
тайм-аут подключения 5000
таймаут клиента 10800000
сервер тайм-аута 10800000
файл ошибок 400 /etc/haproxy/errors/400.http
файл ошибок 403 /etc/haproxy/errors/403.http
файл ошибок 408 /etc/haproxy/errors/408.http
файл ошибок 500 /etc/haproxy/errors/500.http
файл ошибок 502 /etc/haproxy/errors/502.http
файл ошибок 503 /etc/haproxy/errors/503.http
файл ошибок 504 /etc/haproxy/errors/504.http