Yanıtlar:
Sen kullanabilirsiniz errorfile
yönergesi ve sonra özel bir .http
metin dosyası. Yani mesela:
errorfile 503 /etc/haproxy/errors/503-mycustom.http
Dosyanın içeriği şöyle olur:
HTTP/1.0 503 Service Unavailable
Cache-Control: no-cache
Connection: close
Content-Type: text/html
<html>
<head>
<title>RARRR!!!!!</title>
</head>
<body style="font-family:Arial,Helvetica,sans-serif;">
<div style="margin: 0 auto; width: 960px;">
<h2 >RAWR RAWR RAWR</h2>
</div>
</body>
</html>
errorfile
Yönergesi de bir arka uca özel olabilir.
"Errorfile" ayarı, düğümler çevrimiçi olduğunda HAProxy tarafından gönderilen bir yanıtı değiştirmek için kullanılamaz. Bu ayar yalnızca tüm düğümler çevrimdışı olduğunda HAProxy'yi etkiler.
Bu anahtar kelimenin sunucu tarafından döndürülen hataları değil, HAProxy tarafından algılanan ve döndürülen hataları yeniden yazmak anlamına geldiğini anlamak önemlidir. Bu nedenle desteklenen hatalar listesi küçük bir kümeyle sınırlıdır.
Yapabileceğiniz kirli bir şey var. Bir hata sayfası oluşturabileceğiniz özel 502 hatasının döndürülmesine neden olacak 503 yanıtlarını engelleyebilirsiniz. Ancak, haproxy'nin 502 (geçersiz yanıt) döndürmesi için herhangi bir nedenin aynı şeyi döndüreceğini unutmayın.
Temelde "rfdeny ^ HTTP / 1.1 503" kadar basit bir şekilde "errorfile 502" ile birleştirilmiştir.
Web sitemizin eski bir sistemde çalışan bir kısmı var ve ben aşağıdakileri kullandım:
errorfile 502 /etc/haproxy/errors/502.http
acl is_internal_error status ge 500
rspideny . if is_internal_error
Umarım yardımcı olur (8 ay sonra bile olsa).
\r\n
, HTTP protokolü belirtimlerine uymak için başlıklardaki satır kesmeleri için kullanılması gerektiğini unutmayın . Windows kutusundan yükleme yapıyorsanız,binary
Windows satır sonlarını\r\n
unix stil satır sonlarına dönüştürmeyi atlamak için s / ftp dosya aktarımı için modu kullandığınızdan emin olun\n
.