Ich möchte, dass haproxy eine eigene 503-Dokumentseite verwendet, wenn der Back-Server (Back-End) HTTP 503-Code sendet. Ist es möglich?
Ich habe so etwas wie "Monitor Fail" gesehen, weiß aber nicht, wie ich es zum Frontend hinzufügen soll.
quelle
Ich möchte, dass haproxy eine eigene 503-Dokumentseite verwendet, wenn der Back-Server (Back-End) HTTP 503-Code sendet. Ist es möglich?
Ich habe so etwas wie "Monitor Fail" gesehen, weiß aber nicht, wie ich es zum Frontend hinzufügen soll.
Sie können die errorfile
Direktive und dann eine benutzerdefinierte .http
Textdatei verwenden. Also zum Beispiel:
errorfile 503 /etc/haproxy/errors/503-mycustom.http
Der Inhalt der Datei würde dann ungefähr so aussehen:
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>
Die errorfile
Direktive kann auch spezifisch für ein Backend sein.
Die Einstellung "Fehlerdatei" kann nicht zum Ändern einer von HAProxy gesendeten Antwort verwendet werden, wenn Knoten online sind. Diese Einstellung wirkt sich nur auf HAProxy aus, wenn alle Knoten offline sind.
Es ist wichtig zu verstehen, dass dieses Schlüsselwort nicht dazu gedacht ist, vom Server zurückgegebene Fehler neu zu schreiben, sondern von HAProxy erkannte und zurückgegebene Fehler. Aus diesem Grund ist die Liste der unterstützten Fehler auf einen kleinen Satz beschränkt.
\r\n
für Zeilenumbrüche in Kopfzeilen verwendet werden muss, um der HTTP-Protokollspezifikation zu entsprechen. Stellen Sie beim Hochladen von einer Windows-Box sicher, dass Sie denbinary
Modus für die S / FTP-Dateiübertragung verwenden, um das Konvertieren von Windows-Zeilenumbrüchen in Zeilenumbrüche\r\n
im Unix-Stil zu überspringen\n
.Sie können etwas Dreckiges tun. Sie können die Antworten 503 blockieren, wodurch der benutzerdefinierte Fehler 502 zurückgegeben wird, für den Sie eine Fehlerseite erstellen können. Beachten Sie jedoch, dass jeder Grund, aus dem haproxy eine 502 (ungültige Antwort) zurückgeben müsste, dasselbe zurückgibt.
Grundsätzlich ist es so einfach wie "rspdeny ^ HTTP / 1.1 503" kombiniert mit "errorfile 502".
quelle
Wir haben einen Teil unserer Website auf einem Legacy-System ausgeführt, und am Ende habe ich Folgendes verwendet:
Hoffe es hilft (auch wenn es 8 Monate später ist).
quelle