Score:1

Websocket จากแบ็กเอนด์ HAProxy หนึ่งไปยังแบ็กเอนด์อื่นล้มเหลว

ธง cn

ฉันมีสองแบ็กเอนด์ (b1, b2) นั่งอยู่ด้านหลังส่วนหน้า (f1) เดียวกันใน HAProxy การกำหนดเส้นทางตามชื่อโฮสต์ ฉันสามารถสร้าง websocket เป็นทั้ง b1 และ b2 จากแล็ปท็อปของฉัน แต่ถ้าฉันพยายามสร้าง websocket เป็น b2 จาก b1 (ถึง f1) ฉันได้รับข้อผิดพลาด 1006 (ปิดผิดปกติ - EOF ที่ไม่คาดคิด) การ Ping b2 จาก b1 สำเร็จ นี่คือการกำหนดค่าของฉัน:

ส่วนหน้า f1
    ผูก 192.168.1.1:443 ชื่อ 192.168.1.1:443 ssl crt-list /var/etc/haproxy/ReverseProxyHTTP.crt_list  
    โหมด http
    เข้าสู่ระบบทั่วโลก
    ตัวเลือก httplog
    ตัวเลือก http-keep-alive
    ตัวเลือกไปข้างหน้าสำหรับ

    http-request set-header X-Forwarded-Proto http ถ้า !https
    http-request set-header X-Forwarded-Proto https ถ้า https
    ลูกค้าหมดเวลา 30,000
    acl b1 var(txn.txnhost) -m ขอ -i b1
    acl b2 var(txn.txnhost) -m ขอ -i b2
    acl hdr_connection_upgrade hdr (การเชื่อมต่อ) - ฉันอัพเกรด
    acl hdr_upgrade_websocket hdr (อัปเกรด) -i websocket.dll

    use_backend b1ws ถ้า b1 hdr_connection_upgrade hdr_upgrade_websocket 
    use_backend b1 ถ้า b1 
    use_backend b2 ถ้า b2
แบ็กเอนด์ b1ws
    โหมด http
    รหัส 119
    เข้าสู่ระบบทั่วโลก
    แบบติดโต๊ะ ip size 50k หมดอายุ 30m
    ติดsrc
    แหล่งสมดุล
    หมดเวลาเชื่อมต่อ 30,000
    หมดเวลาเซิร์ฟเวอร์ 30,000
    ลองใหม่ 3
    เซิร์ฟเวอร์ s1 192.168.1.2:443 id 101 ssl ตรวจสอบว่าไม่มีตัวแก้ไข globalresolvers 

แบ็กเอนด์ b1
    โหมด http
    รหัส 117
    เข้าสู่ระบบทั่วโลก
    แบบติดโต๊ะ ip size 50k หมดอายุ 30m
    ติดsrc
    แหล่งสมดุล
    หมดเวลาเชื่อมต่อ 30,000
    หมดเวลาเซิร์ฟเวอร์ 30,000
    ลองใหม่ 3
    เซิร์ฟเวอร์ s1 192.168.1.2:443 id 101 ssl ตรวจสอบไม่มีตัวแก้ไข globalresolvers alpn h2,http/1.1 

แบ็กเอนด์ b2
    โหมด http
    รหัส 120
    เข้าสู่ระบบทั่วโลก
    แบบติดโต๊ะ ip size 50k หมดอายุ 30m
    ติดsrc
    แหล่งสมดุล
    หมดเวลาเชื่อมต่อ 30,000
    หมดเวลาเซิร์ฟเวอร์ 30,000
    ลองใหม่ 3
    อุโมงค์หมดเวลา 3600 วินาที
    เซิร์ฟเวอร์ s2 192.168.1.3:443 id 101 ssl ตรวจสอบว่าไม่มีตัวแก้ไข globalresolvers 

หมายเหตุ: b1 และ b1ws ชี้ไปที่เซิร์ฟเวอร์และพอร์ตเดียวกัน แม้ว่า b1 จะชอบ http2 สำหรับ grpc หากมีส่วนหัวของ websocket ระบบจะใช้ b1ws

cn flag
คุณกำลังพยายามเชื่อมต่อจาก B2 -> F1 -> B1 หรือไม่ คุณแน่ใจหรือไม่ว่า HAProxy จะไม่กำหนดเส้นทางการเชื่อมต่อกลับไปที่ B2 ทำไมไม่เชื่อมต่อโดยตรงจาก B2 -> B1 โดยไม่ผ่าน LB
Ryan avatar
cn flag
@ shearn89 B1 -> F1 -> B2; haproxy ไม่ได้กำหนดเส้นทางการเชื่อมต่อกลับไปที่ B1 เพราะถ้าฉันทำ http แบบธรรมดาไปที่ B2 (ผ่าน F1) มันจะสำเร็จ จริง ๆ แล้ว LB จะเขียน URL ใหม่ด้วยเหตุผลด้านความเข้ากันได้ นอกเหนือจากเหตุผลทั่วไปอื่น ๆ ทั้งหมดในการใช้โหลดบาลานเซอร์

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา