Hiçbir eşleşme eşleşmediğinde 404'ü HAProxy'den sunun


15

Şu anda HAProxy'yi 1.5dev-17 kullanarak yeniden yapılandırıyorum. Ne yapmak istiyorum, belirli bir istek için kullanılacak hiçbir arka uç olmadığında bir 404 hatası döndürmektir.

Mevcut yapılandırmamız, django uygulama sunucularımıza yönlendirmek için default_backend kullanıyor, ancak diğer yapılandırılmış arka uçların hiçbiriyle eşleşmeyen çok sayıda problama isteği (kalem testi gibi) olduğunda, django sunucularımız denedikçe durma noktasına geliyor bu geçersiz istekleri sunmak için, sonunda 404 döndürür.

Django arka uçlarına delege olmak yerine 404'ü HAProxy'den sunmak istiyorum. Şu anda bunu bir kesmek ile elde ediyorum:

frontend www
    ...
    default_backend nomatch

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

Ve 404.http dosyası içinde 404 durum kodunu başlıklarda ayarladım. Bu işe yarıyor ama çok yanlış geliyor. HAProxy ile bunu başarmanın daha iyi bir yolu var mı? Yoksa düzenli bir arka uç kullanmalı ve sadece 404 ile yanıt vermesine izin vermeli miyim?


404.http dosyasının içeriği nedir?
Jason Floyd

3
@ JasonFloyd'ın HTTP/1.0 404 Not Foundardından başka başlıklar, ardından boş bir satır ve <html>içerik geldi.
Josh Smeaton

Yanıtlar:



2

Benzer bir şey istedikten sonra bu benim bulduğum şeyle aynı. Yanlış geldi ama pratikte çok iyi çalışıyor ve belirli URL'leri kara listeye almaya çalışmaktan çok daha temiz. Kimsenin bunun yanlış olduğunu düşünmesi için bir yorum bıraktığınızdan emin olun.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.