Відповіді:
Ви можете скористатися errorfile
директивою, а потім спеціальним .http
текстовим файлом. Так, наприклад:
errorfile 503 /etc/haproxy/errors/503-mycustom.http
Вміст файлу буде таким чином:
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
Директива може бути специфічною для внутрішнього інтерфейсу , а також.
Параметр "файл помилок" не може бути використаний для зміни відповіді, надісланої HAProxy, якщо вузли в мережі. Цей параметр впливає на HAProxy лише тоді, коли всі вузли в режимі офлайн.
Важливо розуміти, що це ключове слово не призначене для перезапису помилок, повернених сервером, але помилок, виявлених та повернених HAProxy. Ось чому список підтримуваних помилок обмежений невеликим набором.
Ви можете зробити щось брудне. Ви можете заблокувати відповіді 503, що призведе до повернення користувацької помилки 502, для якої можна створити сторінку помилок. Однак майте на увазі, що будь-яка причина, якій хапрокси повинен був би повернути 502 (недійсна відповідь), поверне те саме.
В основному це так просто, як "rspdeny ^ HTTP / 1.1 503" у поєднанні з "filefile 502".
У нас є частина нашого веб-сайту, яка працює за попередньою системою, і я перейшов до наступного:
errorfile 502 /etc/haproxy/errors/502.http
acl is_internal_error status ge 500
rspideny . if is_internal_error
Сподіваюся, це допоможе (навіть якщо це через 8 місяців).
\r\n
для розривів рядків у заголовках, щоб відповідати специфікації протоколу HTTP. Якщо ви завантажуєте з вікна вікна, переконайтеся, що використовуєтьсяbinary
режим передачі файлів s / ftp, щоб пропустити перетворення розривів рядків Windows в розриви рядків\r\n
у стилі Unix\n
.