ฉันมีแอปเซิร์ฟเวอร์ที่ฟังบนซ็อกเก็ต UNIX และ Nginx ทำหน้าที่เป็นพร็อกซีย้อนกลับ
ตอนนี้ฉันต้องการให้ Nginx รอจนกว่าแอปของฉันจะออนไลน์เมื่อเช่นฉันปรับใช้การอัปเดตและเริ่มต้นใหม่ โดยไม่ส่งคืนข้อผิดพลาดใดๆ ไปยังไคลเอนต์
นี่คือสิ่งที่ฉันมีในการกำหนดค่า Nginx ของฉัน:
ที่ตั้ง / {
# proxy_pass http://localhost:8080;
proxy_pass http://unix:/tmp/MyApp.sock;
proxy_set_header โฮสต์ $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
}
อย่างไรก็ตาม เมื่อใดก็ตามที่แอปของฉันหยุดทำงาน Nginx จะกลับมา 502 เกตเวย์เสีย
โดยทันที. เห็นได้ชัดว่าไม่มี พร็อกซี_*_หมดเวลา
ช่วยการตั้งค่า
สิ่งเดียวกันนี้เกิดขึ้นกับซ็อกเก็ต TCP ในเครื่อง ด้วยซ็อกเก็ต UNIX เมื่อฉันปิดแอป ฉันแน่ใจว่าไฟล์ซ็อกเก็ตถูกลบ เพื่อให้ Nginx เห็นว่าไม่มีแอปทำงานอยู่
ฉันจะบอกให้รอเป็นระยะเวลาหนึ่งจนกว่าซ็อกเก็ตจะใช้งานได้จริงได้อย่างไร