Добрый день.
У нас есть апстрим, у которого установлены достаточно маленькие значения таймаутов. В error.log пишется, что Connection timed out while reading upstream... Это для нас нормальная ситуация. Мы озаботились тем, чтобы считать кол-во ошибок, которые попадают в лог. Берем последнюю минуту, считаем все строки, где есть Сonnection timed out и рисуем график.
Когда у нас произошел таймаут к апстриму, мы отдаем пустую страничку и HTTP 200/OK
error_page 500 501 502 503 504 = наш локейшен, который отдает 200ок
В локейшене, который отдает 200ок у нас есть аксесс лог, в который мы пишем обращения к нему.
То есть у нас есть два лога - error.log, и access.log другого локейшена, куда нжинкс перенаправляет в случае ошибки первого. Логично было бы предположить, что кол-во ошибок за секунду было бы равно кол-ву ошибок access лога того локейшена, куды мы редиректим. Но это не так. Кол-во ошибок в error.log намного больше, чем кол-во обращений к локейшену, который отдает HTTP 200.
Как такое может быть?