Jawaban:
Anda dapat menggunakan errorfile
arahan dan kemudian .http
file teks khusus . Jadi misalnya:
errorfile 503 /etc/haproxy/errors/503-mycustom.http
Konten file kemudian akan menjadi seperti:
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>
The errorfile
direktif dapat spesifik untuk backend juga.
Pengaturan "errorfile" tidak dapat digunakan untuk mengubah respons yang dikirim oleh HAProxy jika node sedang online. Pengaturan ini hanya memengaruhi HAProxy ketika semua node offline.
Penting untuk dipahami bahwa kata kunci ini tidak dimaksudkan untuk menulis ulang kesalahan yang dikembalikan oleh server, tetapi kesalahan terdeteksi dan dikembalikan oleh HAProxy. Inilah sebabnya mengapa daftar kesalahan yang didukung terbatas pada satu set kecil.
Ada sesuatu yang kotor yang bisa Anda lakukan. Anda dapat memblokir tanggapan 503, yang akan menghasilkan mengembalikan kesalahan 502 kustom yang Anda dapat membangun halaman kesalahan. Namun, perlu diingat bahwa alasan apa pun haproxy harus mengembalikan 502 (tanggapan tidak valid) akan mengembalikan hal yang sama.
Pada dasarnya sesederhana "rspdeny ^ HTTP / 1.1 503" dikombinasikan dengan "errorfile 502".
Kami memiliki sebagian dari situs web kami yang berjalan pada sistem lawas, dan saya akhirnya menggunakan yang berikut:
errorfile 502 /etc/haproxy/errors/502.http
acl is_internal_error status ge 500
rspideny . if is_internal_error
Semoga ini bisa membantu (walaupun 8 bulan kemudian).
\r\n
untuk jeda baris di header untuk mematuhi spesifikasi protokol HTTP. Jika mengunggah dari kotak windows pastikan untuk menggunakanbinary
mode untuk transfer file s / ftp untuk melewati konversi jeda baris windows\r\n
ke jeda baris unix style\n
.