Score:1

ตรวจจับการตอบสนอง 502 ใน Nginx Load Balancer

ธง jm

ฉันมีการตั้งค่าต่อไปนี้ - ตัวโหลดบาลานเซอร์ 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 และส่งผ่านทราฟฟิกที่ไม่ได้เข้ารหัสไปยังแอป

Score:0
ธง cz

ปัญหาคือคุณกำลังใช้ ลำธาร และไม่ควร

nginx ไม่สามารถมองเห็นเพย์โหลดการเชื่อมต่อเมื่อใช้งาน ลำธาร ผู้รับมอบฉันทะ ไม่มีทางรู้ได้เลยว่ามี HTTP อยู่ในนั้นหรือไม่ ลำธาร ดูแลทุกอย่างเกี่ยวกับน้ำหนักบรรทุก

คุณจะต้องใช้ "พร็อกซีย้อนกลับมาตรฐานที่ยุติการรับส่งข้อมูล ssl"

Rapolas K. avatar
jm flag
ฉันไม่สามารถหลีกเลี่ยงการใช้สตรีมได้ เนื่องจากเป็นโหลดบาลานเซอร์ทั่วไป นอกจากนี้ ฉันไม่สามารถยุติทราฟฟิก ssl บน loadbalancer ได้ เนื่องจากมีข้อกำหนดว่าทราฟฟิกที่ไม่ได้เข้ารหัสจะไม่ผ่านเครือข่าย (แม้ว่าจะเป็นการภายในก็ตาม)
Michael Hampton avatar
cz flag
@RapolasK. จากนั้นคุณก็จะตรวจไม่พบการตอบกลับ 502 รายการ คุณจะต้องทำอย่างอื่น แต่ทำไมคุณไม่สามารถเข้ารหัสทราฟฟิกใหม่ได้
Score:0
ธง my

หากฉันเข้าใจความหมายของคุณถูกต้อง คุณสามารถใช้การตรวจสอบสถานะที่ใช้งานอยู่ ซึ่งโดยพื้นฐานแล้วจะเป็นคำขอ HTTP เป็นระยะๆ

ตามเอกสาร NGINX (https://docs.nginx.com/nginx/admin-guide/load-balancer/http-health-check/) ซึ่งฉันจะสรุปที่นี่ในกรณีที่หน้าเป็น 404 คุณต้อง:

  • กำหนดใน เซิร์ฟเวอร์ ส่วนของการกำหนดค่า ที่ตั้ง / (หรือเส้นทางที่คล้ายกัน) ส่วน;

  • ได้แก่ proxy_pass และ ตรวจสุขภาพ คำสั่งในส่วนตำแหน่ง / (หรือที่คล้ายกัน);

  • ใน http ต้นน้ำ กลุ่มเซิร์ฟเวอร์ กำหนดหน่วยความจำที่ใช้ร่วมกันโดยการเพิ่ม โซนแบ็กเอนด์ 64k (หรือมูลค่าใกล้เคียงกัน).

อย่างไรก็ตาม วิธีนี้ใช้ไม่ได้หากคุณใช้ ลำธาร บล็อก เนื่องจากสตรีมทำงานที่เลเยอร์ TCP/UDP ต้นน้ำจะต้องอยู่ใน http บล็อก เพื่อให้คุณได้รับประโยชน์จากคุณสมบัติระดับสูงของ http โมดูล.

โพสต์คำตอบ

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