Attualmente sto riconfigurando HAProxy usando 1.5dev-17. Quello che mi piacerebbe fare è restituire un errore 404 quando non esiste un backend da utilizzare per una particolare richiesta.
La nostra configurazione attuale utilizza default_backend per instradare ai nostri server di app di django, ma quando ci sono molte richieste di sondaggio (come un pen-test) che non corrispondono a nessuno degli altri backend configurati, i nostri server di django si fermano mentre provano per soddisfare queste richieste non valide, restituendo infine un 404.
Vorrei servire il 404 da HAProxy piuttosto che delegare ai back-end Django. Attualmente sto realizzando questo con un trucco:
frontend www
...
default_backend nomatch
backend nomatch
errorfile 503 /var/www/http/404.http
E all'interno del file 404.http ho impostato il codice di stato 404 nelle intestazioni. Funziona, ma sembra molto sbagliato. Esiste un modo migliore per raggiungere questo obiettivo con HAProxy? O dovrei usare un backend regolare e lasciare che quella maniglia risponda con un 404?
HTTP/1.0 404 Not Found
seguito da alcune altre intestazioni, quindi una riga vuota, quindi il <html>
contenuto.