ฉันกำลังกำหนดค่า HAProxy อีกครั้งโดยใช้ 1.5dev-17 สิ่งที่ฉันต้องการจะทำคือคืนข้อผิดพลาด 404 เมื่อไม่มีแบ็กเอนด์ที่จะใช้สำหรับคำขอเฉพาะ
การกำหนดค่าปัจจุบันของเราใช้ default_backend เพื่อกำหนดเส้นทางไปยังเซิร์ฟเวอร์แอพ django ของเรา แต่เมื่อมีคำขอตรวจสอบจำนวนมาก (เช่นการทดสอบด้วยปากกา) ที่ตรงกับแบ็กเอนด์ที่กำหนดค่าอื่น ๆ เซิร์ฟเวอร์ django ของเราจะหยุดชะงักในขณะที่พยายาม เพื่อตอบสนองคำขอที่ไม่ถูกต้องเหล่านี้ในที่สุดก็ส่งคืน 404
ฉันต้องการรับใช้ 404 จาก HAProxy แทนที่จะมอบหมายให้กับแบ็กเอนด์ django ขณะนี้ฉันประสบความสำเร็จด้วยแฮ็ค:
frontend www
...
default_backend nomatch
backend nomatch
errorfile 503 /var/www/http/404.http
และภายในไฟล์ 404.http ฉันตั้งรหัสสถานะ 404 ในส่วนหัว ใช้งานได้ แต่รู้สึกผิดมาก มีวิธีที่ดีกว่าในการบรรลุเป้าหมายนี้ด้วย HAProxy หรือไม่? หรือฉันควรใช้แบ็กเอนด์เป็นประจำและให้ที่จัดการกับการตอบสนองกับ 404?
HTTP/1.0 404 Not Found
ตามด้วยส่วนหัวอื่น ๆ จากนั้นเป็นบรรทัดว่างแล้วตามด้วย<html>
เนื้อหา