백엔드 RDP 세션 연결이 끊어져도 프런트엔드는 계속 연결되어 있습니다.

백엔드 RDP 세션 연결이 끊어져도 프런트엔드는 계속 연결되어 있습니다.

클라이언트와 RD 게이트웨이 서버 간의 RDP 연결 부하를 분산하기 위해 HAProxy를 사용하고 있습니다.
HAProxy 뒤에는 2개의 RD 게이트웨이 서버(192.168.0.10/192.168.0.5)가 있으며 밸런스 방법은 ROUND_ROBIN, 스틱 세션은 입니다 SOURCE_IP.

내 구성은 다음과 같습니다.

global
    daemon
    user nobody
    group haproxy
    log /dev/log local0 debug alert
    log /dev/log local1 notice alert
    maxconn 2500
    stats socket /var/lib/neutron/lbaas/v2/7ee12684-c45d-4af4-8ae7-381743beb78e/haproxy_stats.sock mode 0666 level user

defaults
    log global
    retries 3
    option redispatch
    timeout connect 5000
    timeout client 50000
    timeout server 50000

frontend 377c24a1-1735-4947-a854-0d1fb8d0cd97
    option tcplog
    maxconn 2500
    bind 192.168.0.7:443
    mode tcp
    default_backend 51d6cead-368e-45a3-bcda-b1fb8cd5f2dd

backend 51d6cead-368e-45a3-bcda-b1fb8cd5f2dd
    mode tcp
    balance roundrobin
    stick-table type ip size 10k
    stick on src
    timeout check 5s
    server 3ccbdfa9-fa69-4388-ad1b-046731825659 192.168.0.10:443 weight 1 check inter 5s fall 3
    server 7dde5bd2-ad90-4668-9642-466446646948 192.168.0.5:443 weight 1 check inter 5s fall 3

작동하지만 백엔드 RDP 세션이 RD 게이트웨이에서 연결이 끊어지면(이벤트 뷰어에서 연결이 끊어진 로그를 볼 수 있음) 클라이언트 연결이 중지되지 않고 여전히 가능하다는 것을 알았습니다.보다VM 화면(아무것도 할 수 없음)은 세션이 계속 연결되어 있다는 의미입니다. 이유는 무엇입니까?

내가 기대하는 것은 프런트엔드가 백엔드에서 연결이 끊어진 정보를 가져와 다시 연결을 시도해야 한다는 것입니다(세션이 이미 RD 게이트웨이 서버에서 연결이 끊어졌기 때문입니다).

잘못된 구성이 있습니까? 이 문제에 대해 전혀 모릅니다. 도움을 주시면 감사하겠습니다.

답변1

이상합니다. 클라이언트는 연결 브로커로부터 다시 연결하라는 팝업을 받아야 합니다. 시간 초과가 매우 작습니다.이 블로그는 추천한다tcp keepalive도 마찬가지입니다.

clitimeout 1h
srvtimeout 1h
option tcpka 

RDS에 재연결 옵션을 활성화/비활성화할 수 있는 옵션이 있다고 말한 사람이 막연하게 기억나요?

자세한 배경 정보를 확인하고 다른 배포 옵션을 검토하려면 다음을 참조하세요.RDS 배포 가이드.

관련 정보