Sajikan 404 dari HAProxy saat tidak ada yang cocok

15

Saat ini saya mengkonfigurasi ulang HAProxy menggunakan 1.5dev-17. Apa yang ingin saya lakukan adalah mengembalikan kesalahan 404 ketika tidak ada backend untuk digunakan untuk permintaan tertentu.

Konfigurasi kami saat ini menggunakan default_backend untuk merutekan ke server aplikasi Django kami, tetapi ketika ada banyak permintaan menyelidik (seperti tes pena) yang tidak cocok dengan backend yang dikonfigurasi lainnya, server Django kami terhenti ketika mereka mencoba untuk melayani permintaan yang tidak valid ini, akhirnya mengembalikan 404.

Saya ingin melayani 404 dari HAProxy daripada mendelegasikan ke backend Django. Saat ini saya mencapai ini dengan retasan:

frontend www
    ...
    default_backend nomatch

backend nomatch
    errorfile 503 /var/www/http/404.http

Dan dalam file 404.http saya mengatur kode status 404 di header. Ini berhasil, tetapi terasa sangat salah. Apakah ada cara yang lebih baik untuk mencapai ini dengan HAProxy? Atau haruskah saya menggunakan backend biasa dan membiarkannya merespons dengan 404?

Josh Smeaton
sumber
Apa isi dari file 404.http?
Jason Floyd
3
@JasonFloyd HTTP/1.0 404 Not Founddiikuti oleh beberapa tajuk lainnya, lalu baris kosong, lalu <html>konten.
Josh Smeaton

Jawaban:

2

Setelah menginginkan sesuatu yang serupa, ini adalah hal yang sama yang saya temukan. Rasanya salah tetapi bekerja sangat baik dalam praktik dan jauh lebih bersih daripada mencoba memasukkan daftar hitam url tertentu. Pastikan untuk meninggalkan komentar sehingga tidak ada yang menganggapnya salah.

Philip Cristiano
sumber