Я получаю несколько ошибок 502 в nginx:
2020/05/05 20:40:05 [error] 13425 # 0: * 1360447 recv () failed (104: Сброс соединения одноранговым узлом) при чтении заголовка ответа из восходящего потока, клиент: 172.31.12.13, сервер:, запрос: «POST /app/functionHTTP/1.1», восходящий поток: «http://127.0.0.1: 8080 / app / function", хост:" example.com "
Архитектура:
client - load balancer - instances (each with nginx proxy for NodeJS http server)
Значения тайм-аута:
клиент:
балансировщик нагрузки:
nginx:
- http keepalive_timeout: 65s
- upstream keepalive_timeout: 60s
- upstream keepalive: 256 подключений
- proxy_connect_timeout: 60 с
- proxy_read_timeout: 60 с
- proxy_send_timeout: 60 с
сервер (NodeJS):
- время ожидания запроса: 50 с
- keepAliveTimeout: 65 с
- голова ersTimeout: 70 с
Ошибка 502 возникает редко (~ 0,01% запросов), но постоянно.
То, что я уже проверил:
- Не достигнут предел файловых дескрипторов
- Лимит nginx соединений не достигнут
- Лимит портов TCP не достигнут
- Лимит ЦП, памяти, дисковый ввод-вывод не достигнут
Это очень похоже на состояние гонки, когда сервер NodeJS закрыл соединение, а nginx предполагает, что соединение все еще существует.
Что бы быть правильными nginx значения тайм-аута в текущих настройках?
(я не уверен, не является ли это скорее вопросом ServerFault?)