Score:1

การเรนเดอร์ฝั่งเซิร์ฟเวอร์เชิงมุมช่วยลดข้อผิดพลาดได้ถึง 502

ธง br

ดังนั้นฉันจึงใช้งานส่วนหน้าของฉันบนเซิร์ฟเวอร์มาสองสามสัปดาห์แล้ว (การเรนเดอร์ฝั่งเซิร์ฟเวอร์เชิงมุม) ฉันพบปัญหานี้อยู่เรื่อย ๆ โดยที่ส่วนหน้ามีข้อผิดพลาด 502ฉันต้องรีสตาร์ทเซิร์ฟเวอร์สองสามชั่วโมงเพื่อให้แน่ใจว่ามีการสำรองข้อมูล การจราจรไม่ติดขัดและทุกอย่างดูเหมือนจะปกติดี (ในบันทึกคอนโซลของฉัน - ไม่มีข้อผิดพลาด ฯลฯ) จนกระทั่งถึงจุดที่จู่ๆ ก็ดับลง เมื่อฉันรีสตาร์ทเซิร์ฟเวอร์ ssr มันก็ใช้ได้ดีอีกครั้ง ฉันใช้ไลบรารีสากลที่เป็นมาตรฐานสำหรับการเรนเดอร์ฝั่งเซิร์ฟเวอร์ใน Angular อะไรคือปัญหา? ฉันต้องตรวจสอบอะไรบ้าง? แกะ? ซีพียู? อื่น ๆ อีก?

A. Darwin avatar
my flag
เซิร์ฟเวอร์ของคุณกำลังพูดคุยกับเซิร์ฟเวอร์อื่นหรือไม่? มีโหลดบาลานเซอร์อยู่ระหว่างนี้หรือไม่?
br flag
ใช่- มันคุยกับเซิร์ฟเวอร์อื่น ส่วนหน้าและส่วนหลังของฉันโฮสต์แยกกัน ฉันไม่ได้ใส่โหลดบาลานเซอร์ ขณะนี้แทบไม่มีการโต้ตอบใดๆ ระหว่าง 2 เซิร์ฟเวอร์ (อาจมีคำขอ 1,000 รายการต่อวัน) จำเป็นหรือไม่?
A. Darwin avatar
my flag
โหลดบาลานเซอร์อาจจำเป็นหรือไม่ก็ได้ แต่นั่นไม่ใช่ประเด็นของฉันประเด็นก็คือ HTTP 502 มักจะเกิดขึ้นเมื่อเซิร์ฟเวอร์หนึ่ง (เซิร์ฟเวอร์ที่ตอบกลับด้วย 502 ในที่สุด) ต้องคุยกับเซิร์ฟเวอร์อื่นและล้มเหลวด้วยเหตุผลบางประการ นั่นเป็นเหตุผลที่ฉันถาม
Michael Hampton avatar
cz flag
ตรวจสอบบันทึกสำหรับบิตใด ๆ ของสแต็คของคุณที่ส่งคืนข้อผิดพลาด 502
Score:0
ธง my

โดยทั่วไปแล้ว HTTP 502 หมายความว่าเซิร์ฟเวอร์หนึ่ง (เซิร์ฟเวอร์ต้นทางที่ส่งการตอบสนอง HTTP 502) พยายามพูดคุยกับเซิร์ฟเวอร์อื่นและล้มเหลว

คุณพูดถึงว่าการรีบูตเซิร์ฟเวอร์ "ตัวแรก" (เซิร์ฟเวอร์ตัวแรกแจก 502) ช่วยแก้ปัญหาได้ ซึ่งอาจหมายความว่ามีปัญหาที่ไม่ถาวรบางอย่างบนเซิร์ฟเวอร์นั้น

สาเหตุที่เป็นไปได้:

  • หน่วยความจำหมด: หากเซิร์ฟเวอร์ส่วนหน้าของคุณต้องวางกระบวนการหรือเธรดใหม่เพื่อพูดคุยกับส่วนหลัง เซิร์ฟเวอร์อาจไม่สามารถทำได้

ตรวจสอบการใช้ RAM (free -m, top) และขีดจำกัดของ RAM ทั้งส่วนกลาง (/etc/security/limits.conf) และต่อกระบวนการ (cat /proc/PID/limits โดยที่ PID คือ PID ของกระบวนการของคุณ)

  • จำนวนการเชื่อมต่อที่เปิดอยู่: บางทีฟรอนต์เอนด์ของคุณอาจมีการเชื่อมต่อเปิดจำนวนมากไปยังเซิร์ฟเวอร์แบ็กเอนด์ ซึ่งหมายความว่าในบางจุดจะไม่สามารถเปิดการเชื่อมต่อใหม่ได้ และการรีสตาร์ทจะเป็นการปิดการเชื่อมต่อเหล่านั้น

วิ่ง ss -tlpnao | grep <เซิร์ฟเวอร์ส่วนหลัง IP> (หรือพอร์ตอื่น ๆ ) และเปรียบเทียบจำนวนการเชื่อมต่อกับค่าของ sysctl net.ipv4.ip_local_port_range และ sysctl net.ipv4.tcp_fin_timeout .

ฉันจะเรียกใช้ก tcpdump -nni โฮสต์ใดๆ <backend ip> -v เพื่อตรวจสอบสิ่งที่เกิดขึ้นจากมุมมองของแพ็คเก็ต คุณได้รับคำตอบหรือไม่? ถ้ามี จะตอบกลับแบบไหน? หรือว่าส่วนหน้าไม่เคยได้รับคำตอบจากส่วนหลังเลย? วิธีนี้อาจช่วยให้คุณค้นหาสาเหตุที่แท้จริงได้

โพสต์คำตอบ

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