ฉันมีการตั้งค่าต่อไปนี้ - ตัวโหลดบาลานเซอร์ Nginx ที่รับปริมาณการใช้ https และส่งผ่านไปยังโหนด ในแต่ละโหนดมีพร็อกซีย้อนกลับที่จัดการทราฟฟิก https และส่งข้อมูลไปยัง App1, App2 เป็นข้อความธรรมดา
--> LB --> RP -> แอป1, แอป2
`-> RP -> แอป 1, แอป 2
ตอนนี้ปัญหาคือถ้า App1 หยุดทำงานบนโหนด ตัวจัดสรรภาระงานตรวจไม่พบสิ่งนั้นและยินดีให้บริการ 502 กลับไปยังไคลเอนต์ ฉันเดาว่าเป็นเพราะ reverse proxy ยังคงอยู่และกำลังเข้ารหัสทราฟฟิก ดังนั้นตัวโหลดบาลานซ์จึงส่งผ่านข้อมูล ฉันจะแจ้งโหลดบาลานเซอร์ว่า App1 บนโหนด 1 ไม่ทำงานและไปที่โหนดอื่นได้อย่างไร
ย่อ LB nginx.conf:
ลำธาร {
แผนที่ "$ssl_preread_server_name:$server_port" $namehttps {
ชื่อโฮสต์;
บาง address.io:8443 test_site;
}
อัปสตรีม test_site {
เซิร์ฟเวอร์ 192.168.1.10;
เซิฟเวอร์ 192.168.1.11
}
เซิร์ฟเวอร์ {
proxy_pass $namehttps;
ssl_preread บน;
}
}
Reverse proxy nginx.conf ทำหน้าที่เป็น reverse proxy มาตรฐานที่ยุติทราฟฟิก ssl และส่งผ่านทราฟฟิกที่ไม่ได้เข้ารหัสไปยังแอป