ฉันมีอินสแตนซ์ Windows RDS ที่ผู้ใช้เชื่อมต่อผ่านอินเทอร์เน็ต แม้ว่าเราจะวาง HAProxy โดยใช้ส่วนหน้า/ส่วนหลังของ TCP:
ส่วนหน้า front_https_rds
ผูก XXX.XXX.XXX.XXX:443
โหมด tcp
ลูกค้าหมดเวลา 6 ชม
เข้าสู่ระบบทั่วโลก
ตัวเลือก tcplog
ตัวเลือก clitcpka
default_backend back_https_rds
แบ็กเอนด์ back_https_rds
โหมด tcp
เซิร์ฟเวอร์หมดเวลา 6 ชม
วงเวียนสมดุล
เข้าสู่ระบบทั่วโลก
ตัวเลือก tcplog
ตัวเลือก tcp-ตรวจสอบ
ตรวจสอบเซิร์ฟเวอร์ srv-rdgateway pri.vat.e.IP:443
โปรดทราบว่าฉันใช้เกตเวย์ RD ผ่าน HTTPS (RPC ผ่าน HTTP) ไม่ใช่มาตรฐาน RDP 3389
ผู้ใช้บ่นเกี่ยวกับการถูกตัดการเชื่อมต่อบ่อยครั้ง ฉันเห็นซีดี (ไคลเอนต์ยกเลิกการเชื่อมต่อในเฟสข้อมูล) ในคอลัมน์termination_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 ซีดี 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/Nov/2021:18:14:35.135] front_https_rds back_https_rds/srv-rdgateway 1/0/96 3978 SD 20/20/19/19/0 0/0
23 พ.ย. 18:14:35 น. srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56451 [23/Nov/2021:18:14:35.461] front_https_rds back_https_rds/srv-rdgateway 1/0/91 3978 SD 21/21/20/20/0 0/0
23 พ.ย. 18:14:36 น. srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56453 [23/Nov/2021:18:14:35.965] front_https_rds back_https_rds/srv-rdgateway 1/0/89 3978 SD 21/21/20/20/0 0/0
23 พ.ย. 18:16:13 น. srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56447 [23/Nov/2021:18:14:34.997] front_https_rds back_https_rds/srv-rdgateway 1/0/98162 431661 ซีดี 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] front_https_rds back_https_rds/srv-rdgateway 1/0/97776 1295 SD 13/13/12/12/0 0/0
23 พ.ย. 18:16:23 น. srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56746 [23/Nov/2021:18:16:23.423] front_https_rds back_https_rds/srv-rdgateway 1/0/86 3978 SD 14/14/13/13/0 0/0
23 พ.ย. 18:16:23 น. srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56749 [23/Nov/2021:18:16:23.728] front_https_rds back_https_rds/srv-rdgateway 1/0/98 3978 SD 15/15/14/14/0 0/0
23 พ.ย. 18:16:24 น. srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56751 [23/Nov/2021:18:16:24.232] front_https_rds back_https_rds/srv-rdgateway 1/0/92 3978 SD 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 ซีดี 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/Nov/2021:18:17:07.548] front_https_rds back_https_rds/srv-rdgateway 1/0/92 3978 SD 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 1/0/92 3978 SD 15/15/14/14/0 0/0
23 พ.ย. 18:17:08 น. srv-haproxy haproxy[215010]: XXX.XXX.XXX.XXX:56872 [23/Nov/2021:18:17:08.360] front_https_rds back_https_rds/srv-rdgateway 1/0/93 3978 SD 15/15/14/14/0 0/0
ฉันถือว่ามีบางอย่างในไคลเอ็นต์เป็นสาเหตุของสิ่งนี้ แม้ว่าฉันจะระบุอะไรไม่ได้ก็ตาม ฉันเพิ่ม Keepalive ในส่วนหน้าให้กับลูกค้าโดยไม่มีการเปลี่ยนแปลง
ฉันสงสัยว่าใครเคยประสบปัญหานี้มาก่อน หรือมีอะไรที่ฉันสามารถทำได้จากมุมมองของ HAProxy เพื่อแก้ไขปัญหาเพิ่มเติม!
การกำหนดค่าส่วนกลางของฉัน:
ทั่วโลก
บันทึก /dev/log local0.log
บันทึก /dev/log local1 ประกาศ
chroot /var/lib/haproxy
ซ็อกเก็ตสถิติ /run/haproxy/admin.sock โหมด 660 ระดับผู้ดูแลระบบ expose-fd ผู้ฟัง
หมดเวลาสถิติ 30 วินาที
ผู้ใช้แฮพร็อกซี
กลุ่ม haproxy
ภูต
# ตำแหน่งวัสดุ SSL เริ่มต้น
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# การเข้ารหัสเริ่มต้นเพื่อใช้กับซ็อกเก็ตการฟังที่เปิดใช้งาน 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-options ไม่มี sslv3
ค่าเริ่มต้น
เข้าสู่ระบบทั่วโลก
โหมด http
ตัวเลือก httplog
ตัวเลือก dontlognull
หมดเวลาเชื่อมต่อ 5,000
ลูกค้าหมดเวลา 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