В настоящее время я использую RDS RemoteApps и хотел бы добавить масштабирование и избыточность, в настоящее время работаю над ролями веб-доступа и шлюза. Я пробую это с HAProxy (я бы хотел избежать Windows NLB). У кого-нибудь это работает?
Текущая производственная установка:
rds01.domain.com - Web Access and Gateway roles
rds02.domain.com - Connection Broker
rds(03-10).domain.com - Session Hosts
Only port 443 open on external firewall to rds01.domain.com
Я хотел бы добавить второй сервер, который дублирует rds01, имеющий роли веб-доступа и шлюза, а затем сбалансировать их нагрузку. Моя текущая конфигурационная нагрузка нормально балансирует веб-доступ, но я никогда не могу запустить RemoteApp, я получаю следующую ошибку:
Remote Desktop can't connect to the remote computer for one of these reasons:
1)Remote access to the server is not enabled
2)The remote computer is turned off
3)The remote computer is not available on the network
Схема тестирования:
newrds01.domain.com (192.168.1.201) - Web Access & Gateway
newrds02.domain.com (192.168.1.202) - Web Access & Gateway
newrds.domain.com (192.168.1.207) - Internal & external FQDN and IP of HAProxy server
newrds03.domain.com - Connection Broker
newrds04.domain.com - Session Host
Deployment RD Gateway settings
использует имя сервера: newrds.domain.com
DefaultTSGateway
и на newrds01, и на newrds02 установлено значение newrds.domain.com
(Я пробовал установить для них собственные имена серверов)
Конфигурация HAProxy:
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
maxconn 200000
nbproc "2"
cpu-map 1 0
cpu-map 2 1
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
ssl-default-bind-ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS:!3DES
ssl-default-bind-options no-sslv3 no-tlsv10 no-tlsv11
tune.ssl.default-dh-param 2048
defaults
option log-health-checks
mode http
option dontlognull
timeout connect 8000
timeout client 60000s
timeout server 60000s
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
listen stats
bind *:8282
mode http
stats enable
stats uri /
stats realm Haproxy\ Statistics
stats show-desc "HAProxy WebStatistics"
stats show-node
stats show-legends
stats auth admin:admin
stats admin if TRUE
frontend fe_rds
bind 192.168.1.207:80
redirect scheme https if !{ ssl_fc }
bind 192.168.1.207:443 name rds_web ssl crt newrds.domain.com.pem
capture request header Host len 32
log global
option httplog
timeout client 300s
maxconn 1000
acl path_rdweb path_beg -i /RDWeb/
http-request redirect location /RDWeb/ if { path -i / /RDWeb }
acl RDGW_PATH_0 path_beg -i /remoteDesktopGateway/
http-request deny if RDGW_PATH_0
default_backend be_rds
backend be_rds
balance leastconn
log global
option httplog
timeout connect 4s
timeout server 300s
option httpchk GET /RDWeb
cookie RDPWEB insert nocache
default-server inter 3s rise 2 fall 3
server newrds01 192.168.1.201:443 maxconn 1000 weight 10 ssl check cookie newrds01 ca-file ca-certificates.crt
server newrds02 192.168.1.202:443 maxconn 1000 weight 10 ssl check cookie newrds02 ca-file ca-certificates.crt
Мне что-то не хватает в моей конфигурации HAProxy? (Я пробовал другие настройки с отдельными серверами веб-доступа и шлюза, но тоже безуспешно)