Как заставить make nginx запускать скрипт при возникновении ошибки 502 - PullRequest
1 голос
/ 28 февраля 2020

Итак, вот что я пытаюсь сделать. Всякий раз, когда nginx возвращает 502, мы хотим, чтобы он отправил сообщение на нашу информационную панель с URL-путем, который вернул 502.

Затем на нашей информационной панели мы будем отображать в порядке убывания URL-адреса, которые вернули 502, и их соответствующий счет

Пример:

+--------------+-------+
|     url      | count |
+--------------+-------+
| /foo/bar     |    45 |
| /foo/bar/123 |    23 |
| /foo/bar/baz |    12 |
+--------------+-------+

Я предполагаю, что это возможно с директивами nginx, и просто выясняю, как это сделать go.

Я также обеспокоен тем, как справляться с перегрузками, скажем, наши серверы перегружены по уважительным причинам, и это приводит к увеличению количества ошибок 502, а также к трафику c на нашей панели инструментов.

1 Ответ

1 голос
/ 28 февраля 2020

После комментариев, хотя это все еще решение для мониторинга журналов, но я думаю, что это может облегчить вашу озабоченность накладными расходами. Тем не менее, может быть и другой ответ.

Основная идея - создать отдельный журнал, в котором вы будете регистрировать только 502 ошибки и реагировать на них.

Сначала переключите ошибку 502 в ее собственное местоположение. Затем создайте блок местоположения для этой ошибки (она должна быть действительной). Наконец, направьте его в собственный журнал:

error_page   502  /502.html;
location = /502.html {
    root   /var/www/html;
    access_log  /var/log/nginx/502_error.log  main;
}

Таким образом, вы получите только 502 секунды в этом специальном файле журнала, и, следовательно, издержки будут низкими по сравнению с полным мониторингом журнала. Вам также нужно поиграть с форматом журнала, чтобы получить правильное представление начальных страниц.

Кроме того, если вы используете прокси-сервер (что, я полагаю, вы делаете), убедитесь, что у вас есть

proxy_intercept_errors on;

для это работает.

Надеюсь, это поможет, но, возможно, у кого-то есть лучшее решение без использования журналов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...