ฉันมี Nginx ทำงานเป็นพร็อกซีย้อนกลับและแอปพลิเคชัน Django ที่อยู่เบื้องหลัง แอป Django เชื่อมต่อกับ Nginx ผ่าน UWSGI แอพ Django ถูกปรับใช้โดยใช้ Docker และหยุดทำงานประมาณหนึ่งวินาทีระหว่างการปรับใช้ ฉันต้องการสั่งให้ Nginx ส่งคืนหน้าข้อผิดพลาด 503 ที่กำหนดเองในช่วงเวลานั้น
ด้านล่างนี้คือการกำหนดค่า Nginx ของฉัน:
ต้นน้ำ server_django {
เซิร์ฟเวอร์ 0.0.0.0:8000;
}
เซิร์ฟเวอร์ {
ฟัง 443 ssl http2;
ฟัง [::]:443 ssl http2;
server_name server.com;
ที่ตั้ง / {
# จำเป็นต้องให้บริการเนื้อหาคงที่
นามแฝง /data/server.com/website_root/;
try_files $uri @django;
}
สถานที่ @django {
uwsgi_pass server_django;
รวม /etc/nginx/uwsgi_params;
}
}
ฉันได้ลองเพิ่มการกำหนดค่าต่อไปนี้ภายในบล็อก "เซิร์ฟเวอร์":
เปิด uwsgi_intercept_errors;
error_page 502 503 504 =503 @django_is_down;
ตำแหน่ง @django_is_down {
รูท /error_pages/server.com/;
add_header ลองใหม่หลังจาก 10 เสมอ;
ดัชนี 503.html;
}
แต่ก็ไม่ได้ช่วยอะไรเนื่องจาก Nginx เริ่มให้บริการหน้า 404 เริ่มต้นเมื่อแบ็กเอนด์หยุดทำงาน
ฉันจะตรวจพบได้อย่างไรเมื่อ Django หยุดทำงานใน Nginx และแสดงหน้าข้อผิดพลาดที่กำหนดเองเมื่อเป็นเช่นนั้น