Saya ingin haproxy menggunakan halaman dokumen sendiri 503 ketika server kembali (backend) mengirim kode HTTP 503. Apa itu mungkin?
Telah melihat sesuatu seperti kondisi "gagal monitor" tetapi tidak tahu cara menambahkannya ke frontend.
sumber
Saya ingin haproxy menggunakan halaman dokumen sendiri 503 ketika server kembali (backend) mengirim kode HTTP 503. Apa itu mungkin?
Telah melihat sesuatu seperti kondisi "gagal monitor" tetapi tidak tahu cara menambahkannya ke frontend.
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.
\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
.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".
sumber
Kami memiliki sebagian dari situs web kami yang berjalan pada sistem lawas, dan saya akhirnya menggunakan yang berikut:
Semoga ini bisa membantu (walaupun 8 bulan kemudian).
sumber