ในกรณีของฉันฉันไม่อดทนและลงเอยด้วยการตีความบันทึกผิด
อันที่จริงปัญหาที่แท้จริงคือการสื่อสารระหว่าง nginx และ uwsgi ไม่ใช่ระหว่างเบราว์เซอร์และ nginx หากฉันโหลดไซต์ในเบราว์เซอร์และรอนานพอฉันจะได้รับ "504 - Bad Gateway" แต่ใช้เวลานานมากฉันจึงพยายามอย่างต่อเนื่องและรีเฟรชในเบราว์เซอร์ ดังนั้นฉันไม่เคยรอนานพอที่จะเห็นข้อผิดพลาด 504 เมื่อรีเฟรชในเบราว์เซอร์นั่นคือเมื่อคำขอก่อนหน้านี้ถูกปิดและ Nginx เขียนสิ่งนั้นในบันทึกเป็น 499
รายละเอียดเพิ่มเติม
ในที่นี้ฉันจะถือว่าผู้อ่านรู้น้อยที่สุดเท่าที่ฉันเคยทำเมื่อฉันเริ่มเล่น
การตั้งค่าของฉันคือ reverse proxy เซิร์ฟเวอร์ nginx และแอ็พพลิเคชันเซิร์ฟเวอร์เซิร์ฟเวอร์ uWSGI ที่อยู่เบื้องหลัง คำขอทั้งหมดจากไคลเอนต์จะไปที่เซิร์ฟเวอร์ nginx จากนั้นส่งต่อไปยังเซิร์ฟเวอร์ uWSGI จากนั้นการตอบกลับจะถูกส่งกลับในลักษณะเดียวกัน ฉันคิดว่านี่เป็นวิธีที่ทุกคนใช้ nginx / uwsgi และควรใช้
nginx ของฉันทำงานได้ตามที่ควร แต่มีบางอย่างผิดปกติกับเซิร์ฟเวอร์ uwsgi มีสองวิธี (อาจมากกว่านั้น) ที่เซิร์ฟเวอร์ uwsgi ไม่สามารถตอบสนองต่อเซิร์ฟเวอร์ nginx ได้
1) uWSGI กล่าวว่า "ฉันกำลังดำเนินการรอเพียงไม่นานคุณจะได้รับคำตอบ" nginx มีช่วงเวลาหนึ่งที่ยินดีที่จะรอ fx 20 วินาที หลังจากนั้นจะตอบกลับไปยังไคลเอนต์โดยมีข้อผิดพลาด 504
2) uWSGI ตายแล้วหรือ uWSGi ตายในขณะที่ nginx กำลังรออยู่ nginx จะเห็นทันทีและในกรณีนั้นจะส่งกลับข้อผิดพลาด 499
ฉันกำลังทดสอบการตั้งค่าของฉันโดยการร้องขอในไคลเอนต์ (เบราว์เซอร์) ในเบราว์เซอร์ไม่มีอะไรเกิดขึ้นมันก็ยังคงค้างอยู่ หลังจากผ่านไป 10 วินาที (น้อยกว่าการหมดเวลา) ฉันสรุปว่ามีบางอย่างไม่ถูกต้อง (ซึ่งเป็นความจริง) และปิดเซิร์ฟเวอร์ uWSGI จากบรรทัดคำสั่ง จากนั้นฉันจะไปที่การตั้งค่า uWSGI ลองอะไรใหม่ ๆ แล้วรีสตาร์ทเซิร์ฟเวอร์ uWSGI ขณะที่ฉันปิดเซิร์ฟเวอร์ uWSGI เซิร์ฟเวอร์ nginx จะส่งคืนข้อผิดพลาด 499
ดังนั้นฉันจึงทำการดีบักด้วย 499 erroe ซึ่งหมายถึง googling สำหรับข้อผิดพลาด 499 แต่ถ้าฉันรอนานพอฉันจะได้รับข้อผิดพลาด 504 หากฉันได้รับข้อผิดพลาด 504 ฉันจะเข้าใจปัญหาได้ดีขึ้นจากนั้นจึงสามารถดีบักได้
สรุปได้ว่าปัญหาเกิดจาก uWGSI ซึ่งยังคงค้างอยู่ ("รออีกหน่อยเดี๋ยวฉันจะมีคำตอบให้ ... ")
ฉันคงว่าปัญหาผมจำไม่ได้ ฉันเดาว่ามันอาจเกิดจากหลายสิ่งหลายอย่าง